Как работает append()
append() принимает один аргумент любого типа и добавляет его в конец списка как есть.
nums = [1, 2, 3]
nums.append(4)
# [1, 2, 3, 4]
nums.append([5, 6])
# [1, 2, 3, 4, [5, 6]] — вложенный список как один элементОсобенности:
Список удлиняется ровно на 1 элемент.
Аргумент может быть чем угодно: числом, строкой, другим списком, объектом вашего класса.
Как работает extend()
extend() принимает итерируемый объект (список, кортеж, множество, строку и т.п.) и добавляет каждый его элемент в конец списка.
nums = [1, 2, 3]
nums.extend([4, 5])
# [1, 2, 3, 4, 5]
nums.extend((6, 7))
# [1, 2, 3, 4, 5, 6, 7]
nums.extend("ab")
# [1, 2, 3, 4, 5, 6, 7, 'a', 'b']Особенности:
Длина списка увеличивается на количество элементов в переданном итерируемом.
Нельзя передать неитерируемый объект (например, nums.extend(5) вызовет TypeError).
Как ответить на собеседовании
Оба метода добавляют данные в конец списка, но по‑разному. append(x) добавляет один объект как элемент списка, поэтому при append([4, 5]) вы получите вложенный список. extend(iterable) разворачивает итерируемый объект и добавляет каждый его элемент по отдельности, так что при extend([4, 5]) список становится [1, 2, 3, 4, 5]. Если нужно добавить один элемент — используем append, если «слить» в список содержимое другого итерируемого — extend.