Ответ
Основное различие заключается в том, как эти методы обрабатывают итерируемые объекты (например, другие списки).
append(item)
: Добавляет переданныйitem
как один-единственный элемент в конец списка. Еслиitem
— это список, он будет добавлен как вложенный список.extend(iterable)
: Итерируется по переданномуiterable
и добавляет каждый его элемент по отдельности в конец списка, расширяя его.
Ключевые отличия:
Характеристика | append() |
extend() |
---|---|---|
Аргумент | Любой объект | Итерируемый объект |
Результат | Добавляет 1 элемент | Добавляет N элементов |
Изменение длины | len() + 1 |
len() + len(iterable) |
Пример:
# Исходный список
my_list = [1, 2, 3]
# 1. Использование append() со списком
list_to_append = [4, 5]
my_list.append(list_to_append)
# Результат: [1, 2, 3, [4, 5]]
# Длина списка увеличилась на 1
print(f"После append: {my_list}")
# 2. Использование extend() со списком
list_to_extend = [6, 7]
my_list.extend(list_to_extend)
# Результат: [1, 2, 3, [4, 5], 6, 7]
# Длина списка увеличилась на 2 (количество элементов в list_to_extend)
print(f"После extend: {my_list}")