Методы append и extend — особенности и отличия

Оба метода: append и extend используются для расширения списка. Однако, у каждого из этих методов есть свои особенности. Сформулируем основные отличия append и extend, а после — рассмотрим, как работают эти методы на примерах :

Отличие №1:

Аргументом метода append() может быть любой объект: число, строка, список и т. д. Аргументом метода extend() может быть только итерируемый объект (например: список, кортеж, строка и т.д)

Отличие №2:

Метод append() просто добавляет аргумент в конец списка, никак не изменяя его: например, если в качестве аргумента передан кортеж (1, 2), то код lst.append((1, 2)) добавит в список lst один элемент — кортеж (1, 2).

Метод extend() добавляет в конец списка не сам итератор, переданный в качестве аргумента, а его элементы. Например, если в качестве аргумента передан кортеж (1, 2), то код lst.extend((1, 2)) добавит в список lst два элемента: 1 и 2.

Для того, чтобы лучше понять, как работают методы append и extend, рассмотрим практические примеры:

Примеры работы метода append():

Так как с помощью метода append() в список можно добавлять объекты разных типов, рассмотрим варианты расширения списка lst = [0, 1] посредством добавления числа, строки, кортежа и списка:

Добавляем в список число:

lst = [0, 1]
lst.append(2)
print(lst)

Вывод на экран:

[0, 1, 2]

Добавляем в список строку:

lst = [0, 1]
lst.append('Вперёд!')
print(lst)

Вывод на экран:

[0, 1, (2, 3)]  

Примеры работы метода extend():

Так как аргументом метода extend() может быть только итерируемый объект, такой как список, кортеж, строка или словарь, рассмотрим 2 примера добавления в исходный список элементов кортежа и строки:

Добавим в список кортеж:

lst = [0, 1]
lst.extend((2, 3))
print(lst)

Результат на экране:

[0, 1, 2, 3] 

Добавим в список строку:

lst = [0, 1]
lst.extend('Вперёд!')
print(lst)

Результат на экране:

[0, 1, 'В', 'п', 'е', 'р', 'ё', 'д', '!']

Так как строка — это итерируемый объект, то метод extend() добавляет в исходный список буквы, как элементы строки.

Опираясь на рассмотренные выше примеры, подведем итог: отличия методов append и extend

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


У нас появился Telegram-канал для изучающих Python! Присоединяйтесь: вместе «питонить» веселее! 😉 Ссылка на канал: «Кодим на Python!»


Добавить комментарий