Что делает append() в Python
Язык программирования Python содержит множество инструментов для работы с различными типами и структурами данных — благодаря этим удобным инструментам программисты могут упрощать и ускорять процесс разработки, поэтому их стоит изучать.
Одним из таких инструментов является метод append(), который предназначен для работы со списками, а точнее для добавления новых элементов в конец списка. Этот метод используется довольно часто, так как позволяет добавлять элементы в список, при этом не создавая новый список и не изменяя его текущие элементы и их индексы. Этот метод принимает только один аргумент, если передать в него несколько элементов, то всплывет TypeError.
Важно отметить, что append() не создает список — он только добавляет в него элементы, поэтому перед началом работы с этим методом список должен быть уже создан, но при этом он может не содержать никаких элементов (то есть быть пустым).
Синтаксис append()
Синтаксис метода довольно прост и типичен для всех методов в языке программирования Python, представить его можно следующим образом:
list.append(item)
Здесь list — это список, в который необходимо добавить элемент, а item — это элемент, который будет добавлен в конец этого списка. Это может быть элемент любого типа, например, строка, число, словарь, другой список и так далее. Метод append() в Python непосредственно изменяет данный ему список и не возвращает никакого значения (возвращает объект None).
Примеры использования метода append()
Метод append() в Python может использоваться разными способами в зависимости от задачи, которую необходимо выполнить. Рассмотрим несколько примеров использования этого метода.
Добавление новых элементов в список
Самый простой пример — это добавление новых элементов в список. Выглядеть это может следующим образом:
numbers = [1, 2, 3] # Создан список с цифрами от 1 до 3
numbers.append(4) # Добавляется цифра 4
print(numbers)
# Вывод: [1, 2, 3, 4]
# Можно заметить, что цифра 4, которая была добавлена, появилась в конце списка numbers
# Теперь к этому элементу можно обратиться
print(numbers[3])
# Вывод: 4
append() позволяет добавлять в список элементы разных типов:
items = [] # Создан пустой список
# Добавляются элементы разных типов
items.append(15)
items.append('Кошка')
items.append([1, 2, 3])
print(items)
# Вывод: [15, 'Кошка', [1, 2, 3]]
Также в этот метод можно передать переменные, содержащие нужные значения:
items = []
cat = 'Кошка'
number = 15
numbers = [1, 2, 3]
items.append(number)
items.append(cat)
items.append(numbers)
print(items)
# Вывод: [15, 'Кошка', [1, 2, 3]]
print(items[2])
# Вывод: [1, 2, 3]
Создание списка через цикл с использованием метода append()
Если в список нужно добавить определенную последовательность элементов, то вместо того, чтобы поочередно добавлять каждый из них или прописывать каждый элемент отдельно, можно прибегнуть к использованию цикла.
Например, если нужно добавить в список цифры от 1 до 3, можно написать такой код на Python:
numbers = []
for i in range(1, 4): # Будут перебираться значения от 1 до 3
numbers.append(i) # Текущее значение i будет добавляться в список на каждой итерации
print(numbers)
# Вывод: [1, 2, 3]
Существуют и более интересные варианты использования метода в цикле, например, такие:
# Создание списка из цифр от 0 до 2 с шагом 0.5
numbers = []
for i in range(5): # Будут перебираться значения от 0 до 4
numbers.append(i / 2)
print(numbers)
# Вывод: [0.0, 0.5, 1.0, 1.5, 2.0]
# Создание списка с квадратами цифр от 0 до 4
numbers = []
for i in range(5):
numbers.append(i ** 2) # Знак ** возводит переменную в квадрат
print(numbers)
# Вывод: [0, 1, 4, 9, 16]
Добавление вложенных списков
С помощью метода append() можно добавлять и вложенные списки, это может выглядеть так:
numbers = [[0, 1], [2, 3, 4]]
numbers.append([5, 6, 7, 8])
print(numbers)
# Вывод: [[0, 1], [2, 3, 4], [5, 6, 7, 8]]
Добавление элемента только при выполнении условия
С помощью метода append() также можно добавлять в список элементы только в том случае, если они соответствуют какому-то условию.
Например, если нужно добавить в список только четные числа из определенного диапазона, то код может выглядеть следующим образом:
even_numbers = []
for i in range(2, 11): # Будут перебираться значения от 2 до 10
if i % 2 == 0: # Проверка числа на четность
even_numbers.append(i)
print(even_numbers)
# Вывод: [2, 4, 6, 8, 10]
# Если нужно добавить только нечетные числа, то нужно изменить условие на
if i % 2 != 0:
# Также можно добавлять значения из одного списка в другой при выполнении условия
grades = [2, 5, 4, 5, 3] # Список со всеми оценками
best_grades = [] # Список, в который будут добавлены лучшие оценки (4 и 5)
for i in grades:
if i >= 4: # Если оценка больше или равна 4, то она будет добавлена в best_grades
best_grades.append(i)
print(best_grades)
# Вывод: [5, 4, 5]
Конкатенация списков с использованием append()
Под конкатенацией списков с использованием append() подразумевается добавление одного списка в конец другого в качестве отдельного элемента.
Выглядеть это может следующим образом:
numbers1 = [1, 2, 3]
numbers2 = [4, 5]
numbers1.append(numbers2) # Список numbers2 будет добавлен в numbers1
print('New list:', numbers1) # Для более информативного вывода добавлен текст 'New list:'
# Вывод: New list: [1, 2, 3, [4, 5]]
print(numbers1[3])
# Вывод: [4, 5]
Можно заметить, что слияния списков не произошло: теперь numbers1 состоит из отдельных элементов 1, 2, 3 и списка 4, 5. Другими словами, список numbers2 был добавлен в качестве цельного элемента.
Отличие append() от extend()
Метод extend() в Python также нужен для добавления элементов в список, однако между ним и append() есть существенная разница: методу extend() на вход подается итерируемый объект, а затем его содержимое добавляется в список в качестве отдельных элементов.
Если переписать предыдущий пример с использованием метода extend(), то получится следующее:
numbers1 = [1, 2, 3]
numbers2 = [4, 5]
numbers1.extend(numbers2) # Список numbers2 будет добавлен в numbers1
print('New list:', numbers1)
# Вывод: New list: [1, 2, 3, 4, 5]
print(numbers1[3])
# Вывод: 4
print(numbers1[4])
# Вывод: 5
Теперь список numbers1 состоит из отдельных элементов 1, 2, 3, 4, 5.