Методы списка в Python с примерами кода
Методы списка Python позволяют добавлять, вставлять, удалять, искать и переставлять элементы прямо в существующем объекте list. Ниже для каждого метода есть синтаксис, параметры, возвращаемое значение и примеры, а также типичные ошибки вроде ValueError и IndexError. В конце собрана сводная таблица и ответы на частые вопросы.
В этой статье собраны практически все методы списка python.

Содержание статьи
- Python List append()
- Python List copy()
- Python List count()
- Python List extend()
- Python List index()
- Python List insert()
- Python List pop()
- Python List remove()
- Python List reverse()
- Python List sort()
Python list append
Метод append() используется для добавления нового элемента в список. При использовании данного метода новый элемент добавляется в конец списка.
currencies = ['Dollar', 'Euro', 'Rub']
# Добавление в список
currencies.append('Yen')
print(currencies)
# Результат: ['Dollar', 'Euro', 'Rub', 'Yen']
Принимаемые параметры
Метод append() принимает один единственный аргумент
item- элемент, который может быть числом, строкой, или списком. Все добавляемые элементы, добавляются в конец списка.
Пример 1. Добавление элемента в список
Выше мы уже рассмотрели один небольшой пример, но как мы уже знаем, практика никогда не бывает лишней.
# Список животных
animals = ['cat', 'dog', 'rabbit']
# Добавление нового животного в список
animals.append('guinea pig')
print('Обновленный список животных: ', animals)
Пример 2. Добавление списка в список
Выше, в принимаемых параметрах, мы с вами определили, что список может принимать другой список.
# Список домашних животных
animals = ['cat', 'dog', 'rabbit']
# Список диких животных
wild_animals = ['tiger', 'fox']
# Добавление списка диких животных
animals.append(wild_animals)
print('Обновленный список животных: ', animals)
Необходимо отметить один момент. Бывают ситуации, когда нам надо добавить в список элементы из списка, а не сам список, в такой момент, можно воспользоваться методом extend(), о котором мы поговорим ниже.
List extend
Метод extend() в отличии от метода append(), добавляет элементы списка, в список. Так же как и при использовании метода append(), метод extend() добавляет новые элементы в конец списка.
- Метод
extend()добавляет элементы списка в другой список - Метод
append()добавляет список, в другой список
# Список 1
prime_numbers = [2, 3, 5]
# Список 2
numbers = [1, 4]
# Добавляем все элементы prime_numbers в numbers
numbers.extend(prime_numbers)
print('Обновленный список:', numbers)
# Результат: После метода extend(): [1, 4, 2, 3, 5]
Принимаемые параметры (List extend)
Метод extend() принимает любой итерируемый объект, например:
Пример 1. Используем метод extend()
# Список языков
languages = ['French', 'English']
# Другой список языков
languages1 = ['Spanish', 'Portuguese']
# Добавляем languages1 в список languages
languages.extend(languages1)
print('Обновленный список:', languages)
Пример 2. Добавляем в список кортежи и множества
# Список
languages = ['French']
#Кортеж
languages_tuple = ('Spanish', 'Portuguese')
# Множества
languages_set = {'Chinese', 'Japanese'}
# Добавляем в список кортеж
languages.extend(languages_tuple)
print('Обновленный список:', languages)
# Добавляем множества в наш список
languages.extend(languages_set)
print('Обновленный список:', languages)
#РезультатNew Languages List: ['French', 'Spanish', 'Portuguese']
Newer Languages List: ['French', 'Spanish', 'Portuguese', 'Japanese', 'Chinese']
Выше мы рассмотрели классические варианты использование данного метода, но так же есть и другие варианты использования расширения списков.
Пример 3. Оператор "+"
Максимально простой способ.
a = [1, 2]
b = [3, 4]
a += b # a = a + b
# Output: [1, 2, 3, 4]
print('a =', a)
#Результат
a = [1, 2, 3, 4]
Пример 4. Срез и объединение
a = [1, 2]
b = [3, 4]
a[len(a):] = b
# Результат: [1, 2, 3, 4]
print('a =', a)
Python list insert
Списки в python, являются довольно гибким инструментом. Метод insert(), позволяет добавлять элементы между текущими элементами списка. Рассмотрим небольшой пример.
# Открываем список
vowel = ['a', 'e', 'i', 'u']
# передаем позицию, и вставляемый элемент
vowel.insert(3, 'o')
print('Список:', vowel)
# Результат: List: ['a', 'e', 'i', 'o', 'u']
Синтаксис метода insert()
Достаточно просто в использовании метод, ниже представлен его синтаксис.
list.insert(i,элемент)
В данном случаем, i это позиция, куда надо вставить нужный нам элемент, а вторым аргументом является непосредственно сам вставляемый элемент.
Если iравен 0 - то элемент будет вставлен в начало спискаЕсли iравен 3 - то элемент будет вставлен в 4-ю позицию
Пример 1. вставка элемента в список
# Список с числами
prime_numbers = [2, 3, 5, 7]
#Добавляем число 11 в 4ю позицию
prime_numbers.insert(4, 11)
print('List:', prime_numbers)
# РезультатList: [2, 3, 5, 7, 11]
Пример 2. вставка кортежа в список
mixed_list = [{1, 2}, [5, 6, 7]]
# Кортеж с числами
number_tuple = (3, 4)
# вставляем элементы кортежа в список
mixed_list.insert(1, number_tuple)
print('Обновленный список:', mixed_list)
#РезультатОбновленный список: [{1, 2}, (3, 4), [5, 6, 7]]
List remove python
Метод remove() используется для удаления элементов из списка. Данный метод удаляет первый соответствующий переданному аргументу элемент списка.
# Открываем список
prime_numbers = [2, 3, 5, 7, 9, 11]
# Удаляем 9
prime_numbers.remove(9)
# Печатаем список
print('Обновленный список: ', prime_numbers)
# Результат: Обновленный список: [2, 3, 5, 7, 11]
Параметры метода remove()
remove()принимает один элемент, и удаляет этот элемент из списка, если он там есть- В случае если элемент отсутствует, мы получим ошибку
ValueError:list.remove(x): x not in list
Пример 1. удаляем элемент из списка
# Список животных
animals = ['cat', 'dog', 'rabbit', 'guinea pig']
# 'rabbit' удаляем
animals.remove('rabbit')
# Печатаем список
print('Обновленный список: ', animals)Updated animals list: ['cat', 'dog', 'guinea pig']
Пример 2. Удаление из списка, в котором есть повторяющиеся элементы
# Список животных
animals = ['cat', 'dog', 'dog', 'guinea pig', 'dog']
# 'dog' удаляем
animals.remove('dog')
# Обновляем список
print('Обновленный список: ', animals)
#Результат
Обновленный список: ['cat', 'dog', 'guinea pig', 'dog']
В случаем, если мы пытаемся удалить методом remove() повторяющиеся элементы списка, мы получим удаление только первого вхождения.
Пример 3. Удаляем несуществующий элемент
# Список животных
animals = ['cat', 'dog', 'rabbit', 'guinea pig']
# Удаляем 'fish' элемент
animals.remove('fish')
# Обновленный список
print('Обновленный список: ', animals)
#Результат
Traceback (most recent call last):
File ".. .. ..", line 5, in
animal.remove('fish')
ValueError: list.remove(x): x not in list
Конечно, при попытке удаления несуществующего элемента мы получим ошибку.
- Бывают случаи, когда нам надо удалить элементы по индексу, а не по названию. В таком случае, можно воспользоваться метом
pop(). - Также можно удалить элемент по индексу оператором
del:del animals[0]
Python List count
Метод count() - является довольно удобной штукой, для подсчета количества повторений элемента в списке.
# Список с числами
numbers = [2, 3, 5, 2, 11, 2, 7]
# Проверяем повторение элемента 2
count = numbers.count(2)
print('Элемент 2 повторяется:', count)
# Результат:Элемент 2 повторяется: 3
Параметры и синтаксис метода count()
Здесь разобраны такие пункты: синтаксис у данного метода довольно простой, параметры метода count().
Синтаксис у данного метода довольно простой
list.count(элемент)
Параметры метода count()
Метод count() принимает только один параметр:
Элемент- элемент, который необходимо подсчитать на количество повторений
Пример 1. Используем count()
# Список букв
vowels = ['a', 'e', 'i', 'o', 'i', 'u']
# Считаем элемент 'i'
count = vowels.count('i')
# Печатаем результат подсчета
print('Количество элементов i :', count)
# Считаем элемент 'p'
count = vowels.count('p')
# Печатаем результат подсчета
print('Количество элементов p :', count)
#РезультатКоличество элементов i: 2
Количество элементов p: 0
Python List pop
Метод pop() работает следующим образом:
- Передаем методу
pop()индекс удаляемого элемента из списка - Элемент удаляется, и метод
pop()возвращает нам значение удаленного элемента
# Список чисел
prime_numbers = [2, 3, 5, 7]
# Удаляем элемент с индексом 2
removed_element = prime_numbers.pop(2)
print('Удаленный элемент', removed_element)
# Результат: Удаленный элемент: 5
Параметры метода pop()
- Метод
pop()принимает индекс удаляемого элемента, в качестве аргумента - Передавать аргумент методу
pop(), необязательно. В случае, если аргумент не передан, то, по умолчанию передается индекс-1, что в Python является индекс последнего элемента списка. - В случае, если переданный индекс находится вне диапазона, мы получим ошибку
IndexError: pop index out of range
Пример 1. Удаляем по заданному индексу
# Список языков программирования
languages = ['Python', 'Java', 'C++', 'French', 'C']
# Удаляем 4ый элемент
return_value = languages.pop(3)
print('Значение:', return_value)
# Updated List
print('Обновленный список:', languages)
#Результат
Return Value: French
Updated List: ['Python', 'Java', 'C++', 'C']
Пример 2. Удаляем без передачи индекса
# Список языков программирования
languages = ['Python', 'Java', 'C++', 'Ruby', 'C']
# Удаляем последний элемент/возвращаем значение
print('When index is not passed:')
print('Return Value:', languages.pop())
print('Updated List:', languages)
# Удаляем последний элемент/возвращаем значение
print('\nWhen -1 is passed:')
print('Return Value:', languages.pop(-1))
print('Updated List:', languages)
# Удаляем 3 с конца элемент/возвращаем значение
print('\nWhen -3 is passed:')
print('Return Value:', languages.pop(-3))
print('Updated List:', languages)
#РезультатWhen index is not passed:
Return Value: C
Updated List: ['Python', 'Java', 'C++', 'Ruby']
When -1 is passed:
Return Value: Ruby
Updated List: ['Python', 'Java', 'C++']
When -3 is passed:
Return Value: Python
Updated List: ['Java', 'C++']
Также не забывайте об операторе del и методе remove(). Данные элементы так же прекрасно и по своему справляются с удалением элементов из списка.
Python List reverse
По названию данного метода, думаю вам уже понятно для чего он предназначен. Метод reverse() меняет элементы в обратном порядке.
prime_numbers = [2, 3, 5, 7]
prime_numbers.reverse()
print('Reversed List:', prime_numbers)
# Результат: Список в обратном порядке: [7, 5, 3, 2]
Синтаксис и параметры метода reverse()
Синтаксис как и у других методов списка, достаточно простой, и выглядит следующим образом:
list.reverse()
reverse()- не принимает никаких аргументовreverse()- не возвращает ничего. Он обновляет существующий список.
Пример 1. Список в обратном порядке
# Список с ОС
systems = ['Windows', 'macOS', 'Linux']
print('Оригинальный список:', systems)
# Список reverse
systems.reverse()
# Обновленный список
print('Обновленный список:', systems)
#РезультатОригинальный список: ['Windows', 'macOS', 'Linux']
Обновленный список: ['Linux', 'macOS', 'Windows']
В этом примере, мы рассмотрели работу метода reverse(), но в Python существуют несколько способов изменения порядка элементов в списке.
Пример 2. Переворачиваем список, с помощью срезов
# Список с ОС
systems = ['Windows', 'macOS', 'Linux']
print('Оригинальный список:', systems)
# Переворачиваем список
# Синтаксис: reversed_list = systems[start:stop:step]
reversed_list = systems[::-1]
# Обновленный список
print('Updated List:', reversed_list)
#Результат
Original List: ['Windows', 'macOS', 'Linux']
Updated List: ['Linux', 'macOS', 'Windows']
Более подробно про нарезку/срезы.
Python List copy
Метод copy(), копирует нужный нам список. Все достаточно просто.
prime_numbers = [2, 3, 5]
numbers = prime_numbers.copy()
print('Copied List:', numbers)
# Результат: Скопированный список: [2, 3, 5]
Синтаксис и параметры copy()
new_list = list.copy()
Copy()- Не принимает никаких параметровCopy()- Возвращает новый список. Новый, неизмененный список
Конечно, в python так же предусмотрены и другие методы копирования, ниже приведу небольшой пример того, как можно скопировать список с помощью оператора "="
Копируем список с помощью оператора "="
old_list = [1, 2, 3]
new_list = old_list
Но, хочу вас предупредить, по факту, если мы изменим оригинальный список, то у нас так же изменится скопированный. Такое явление происходит из за того, что новый объект списка, ссылается на старый, и отслеживает его состояние.
old_list = [1, 2, 3]
new_list = old_list
# Добавляем новый элемент
new_list.append('a')
print('Новый список:', new_list)
print('Старый список:', old_list)
Python List index
Метод index() возвращает индекс того или иного элемента в списке. Рассмотрим небольшой пример.
animals = ['cat', 'dog', 'rabbit', 'horse']
# передаем методу 'dog'
index = animals.index('dog')
print(index)
# Результат: 1
Синтаксис и параметры метода index()
list.index(element, start, end)
Параметры index()
Метод index() может принимать максимум три параметра:
element- непосредственно тот элемент, индекс которого надо найтиstart- необязательный параметр, указывает на начальную точку поискаend- необязательный параметр, поиск выполняется до указанного индекса
Метод index(), возвращает индекс только первого вхождения, соответствующего элемента.
Пример 1. Найдем индекс элемента
vowels = ['a', 'e', 'i', 'o', 'i', 'u']
index = vowels.index('e')
print('Индекс элемента:', index)
# Ищем индекс 'i'
# Получим индекс первого 'i'
index = vowels.index('i')
print('The index of i:', index)
#РезультатThe index of e: 1
The index of i: 2
На самом деле, не думаю что данный пример требует каких либо объяснений. Мы просто передаем элемент, и получаем его индекс.
Пример 2. Индекс элемента которого нет в списке
Тут все достаточно просто, в случае, если в списке отсутствует передаваемый элемент, то вместо индекса, мы получим знакомую нам ошибку ValueError.
alphabets = ['a', 'e', 'i', 'o', 'g', 'l', 'i', 'u']
index = alphabets.index('e') # 1
print('The index of e:', index)
index = alphabets.index('i', 4) # 6
print('The index of i:', index)
index = alphabets.index('i', 3, 5) # Error!
print('The index of i:', index)
#РезультатThe index of e: 1
The index of i: 6
Traceback (most recent call last):
File "<string>", line 7, in <module>
ValueError: 'i' is not in list
Метод clear() и оператор del
Метод clear() удаляет из списка все элементы и ничего не возвращает. Объект остается тем же самым, поэтому все переменные, которые ссылаются на этот список, тоже увидят пустой список. Присваивание items = [] работает иначе: оно создает новый объект, а старый список у других ссылок не меняется.
items = [1, 2, 3]
alias = items
items.clear()
print(items, alias) # [] []
items = [1, 2, 3]
alias = items
items = []
print(items, alias) # [] [1, 2, 3]del не метод, а оператор языка. Он удаляет элемент по индексу или целый срез и, в отличие от pop(), ничего не возвращает.
nums = [10, 20, 30, 40, 50]
del nums[0] # [20, 30, 40, 50]
del nums[1:3] # [20, 50]
del nums[:] # то же, что nums.clear()
print(nums) # []Сводная таблица методов списка
Все методы, кроме copy(), count() и index(), меняют исходный список и возвращают None. Поэтому запись a = a.append(1) превращает переменную в None, это одна из самых частых ошибок новичков.
| Метод | Что делает | Возвращает | Ошибка |
|---|---|---|---|
append(x) | Добавляет один элемент в конец | None | - |
extend(iterable) | Добавляет все элементы итерируемого объекта | None | TypeError для неитерируемого аргумента |
insert(i, x) | Вставляет элемент перед индексом i | None | - |
remove(x) | Удаляет первое вхождение значения | None | ValueError |
pop(i=-1) | Удаляет элемент по индексу | Удаленный элемент | IndexError |
clear() | Очищает список | None | - |
index(x, start, end) | Ищет позицию первого вхождения | Индекс | ValueError |
count(x) | Считает вхождения | Число | - |
sort(key=None, reverse=False) | Сортирует на месте | None | TypeError для несравнимых типов |
reverse() | Разворачивает порядок | None | - |
copy() | Создает поверхностную копию | Новый список | - |
Сортировке с параметрами key и reverse посвящена отдельная статья про метод sort(). Разницу между поверхностной и глубокой копией подробно разбирает материал о том, как скопировать список. Полное описание типа есть в официальной документации Python.
Частые вопросы
Ответы на вопросы, которые чаще всего возникают при работе с методами list.
Чем append() отличается от extend()?
append() добавляет аргумент целиком как один элемент, даже если это другой список. extend() перебирает аргумент и добавляет каждый его элемент. Например, a.append('ab') добавит строку 'ab', а a.extend('ab') добавит два символа 'a' и 'b'.
Почему метод списка вернул None?
Методы, которые меняют список на месте (append, sort, reverse, insert и другие), возвращают None. Вызывайте их отдельной строкой, а если нужен новый объект, используйте функции sorted() и reversed() или срез [::-1].
Как удалить все вхождения элемента?
remove() удаляет только первое совпадение. Чтобы убрать все, проще собрать новый список: nums = [x for x in nums if x != 2]. Если нужно избавиться от повторов вообще, пригодятся способы из статьи про удаление дубликатов.
Что будет, если передать в insert() индекс больше длины списка?
Ошибки не будет: элемент добавится в конец. Слишком большой по модулю отрицательный индекс вставит элемент в начало.
Как проверить, есть ли элемент в списке, без ошибки?
Используйте оператор in: if 'dog' in animals: i = animals.index('dog'). Так index() и remove() не вызовут ValueError.