В чем разница между методами append() и extend() у списков в Python?

Ответ

Основное различие заключается в том, как эти методы обрабатывают итерируемые объекты (например, другие списки).

  • 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}")