Вопрос проверяет знание временной сложности операции добавления элемента в конец списка в Python.
В Python списки реализованы как динамические массивы. Это означает, что они хранят элементы в непрерывной области памяти и автоматически увеличивают свой размер при необходимости. Операция добавления элемента в конец списка с помощью метода append() выполняется за амортизированное O(1).
Когда вы добавляете элемент, Python проверяет, есть ли свободное место в текущем массиве. Если место есть, элемент просто записывается в следующую ячейку, что занимает O(1). Если массив заполнен, Python выделяет новый, больший массив (обычно в 1.125 раза больше), копирует все существующие элементы в него (O(n)), а затем добавляет новый элемент. Такое перераспределение происходит редко, поэтому в среднем время остается постоянным.
my_list = [1, 2, 3]
my_list.append(4) # O(1) в среднем
print(my_list) # [1, 2, 3, 4]Амортизированное O(1) делает списки Python эффективными для частого добавления элементов в конец, что полезно при построении коллекций данных, где порядок важен и требуется быстрая вставка.