Разница между append() и extend()?

append(x) добавляет один объект в конец списка как единый элемент, увеличивая длину списка ровно на 1. extend(iterable) проходит по элементам итерируемого объекта и добавляет каждый элемент по отдельности, увеличивая длину списка на количество элементов в этом итерируемом объекте.

Подробный ответ

Как работает 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.

Оцени свой прогресс

Честно оцени своё понимание этого вопроса, чтобы мы могли построить твой учебный трек максимально эффективно.
Читать в блоге