Методы списков Python

В Python у списков есть множество методов, описание которых приведено ниже.

Добавление элементов

Метод:

list.append(item)

Описание:

Добавляет один элемент в конец списка.

Параметры:

item — элемент, который будет добавлен. Это может быть число, строка, словарь, другой список и так далее.

Возвращаемое значение:

Модифицирует исходный список.  Возвращает None.

Примеры:

Пример 1: Добавление элемента в список.

animals = ['cat', 'dog', 'rabbit']

# добавление элемента 
animals.append('guinea pig')

print('Updated animals list: ', animals)

Результат:

Updated animals list:  [‘cat’, ‘dog’, ‘rabbit’, ‘guinea pig’]

 

Пример 2: Добавление списка (как элемента) в другой список.

animals = ['cat', 'dog', 'rabbit']
wild_animals = ['tiger', 'fox']

# добавление списка wild_animals в список animals 
animals.append(wild_animals)

print('Updated animals list: ', animals)

Результат:

Updated animals list:  [‘cat’, ‘dog’, ‘rabbit’, [‘tiger’, ‘fox’]]

Примечание:

Если вам нужно добавить не список в список (как в примере выше), а элементы одного списка в другой список, используйте метод extend().


Метод:

list.extend(iterable)

Описание:

Добавляет все элементы итерируемого объекта (списка, кортежа, строки и т. д.) в конец списка.

Параметры:

iterable — итерируемый объект, элементы которого будут добавлены в список.

Возвращаемое значение:

Модифицирует исходный список.  Возвращает None.

Примечание:

Вы также можете добавить все элементы итерируемого объекта в список, используя:

1. Оператор «+»:

a = [1, 2]
b = [3, 4]

a += b  

# Output: [1, 2, 3, 4]
print(a)

2. Срезы:

a = [1, 2]
b = [3, 4]

a[len(a):] = b

# Output: [1, 2, 3, 4]
print(a)

Примеры:

Пример 1: Добавление элементов одного списка в другой список.

language = ['French', 'English']
language1 = ['Spanish', 'Portuguese']

# добавление элементов списка language1 в  список language
language.extend(language1)

print('Language List:', language)

Результат:

Language List: [‘French’, ‘English’, ‘Spanish’, ‘Portuguese’]

 

Пример 2: Добавление элементов кортежа и множества в список.

language = ['French']
language_tuple = ('Spanish', 'Portuguese')
language_set = {'Chinese', 'Japanese'}

# добавление элементов кортежа language_tuple в список language
language.extend(language_tuple)

print('New Language List:', language)

# добавление элементов множества language_set в список language
language.extend(language_set)

print('Newer Language List:', language)

Результат:

New Language List: [‘French’, ‘Spanish’, ‘Portuguese’]

Newer Language List: [‘French’, ‘Spanish’, ‘Portuguese’, ‘Japanese’, ‘Chinese’]


Метод:

list.insert(index, element)

Описание:

Добавляет элемент в список по указанному индексу.

Параметры:

index – позиция (индекс), на которую будет помещен указанный элемент. Нумерация начинается с нуля. Также поддерживается отрицательная индексация.

element — элемент, который нужно поместить в список.

Возвращаемое значение:

Модифицирует исходный список.  Возвращает None.

Примеры:

Пример 1: Вставка элемента в список.

vowel = ['a', 'e', 'i', 'u']

# вставка 'o' по индексу 3
vowel.insert(3, 'o')

print('Updated List:', vowel)

Результат:
Updated List: [‘a’, ‘e’, ‘i’, ‘o’, ‘u’]

Пример 2: Вставка кортежа (как элемента) в список.

mixed_list = [{1, 2}, [5, 6, 7]]
number_tuple = (3, 4)

# вставка кортежа по индексу 1
mixed_list.insert(1, number_tuple)

print('Updated List:', mixed_list)

Результат:

Updated List: [{1, 2}, (3, 4), [5, 6, 7]]

Удаление элементов

Метод:

list.remove(element)

Описание:

Удаляет первый найденный в списке элемент, значение которого соответствует значению, переданному в качестве аргумента.

Параметры:

element — элемент, который будет удален из списка. Если элемент в списке не найден, то возбуждается исключение ValueError.

Возвращаемое значение:

Модифицирует исходный список.  Возвращает None.

Примечание:

Если список содержит повторяющиеся элементы, метод remove() удаляет только первое вхождение заданного элемента в списке.

Если нужно удалить элемент по индексу или вернуть значение удаляемого элемента, используйте list.pop().

Также для удаления элементов из списка можно использовать инструкцию del.

Примеры:

Пример 1: Удаление элемента из списка.

animals = ['cat', 'dog', 'rabbit', 'guinea pig']

# удаление элемента 'rabbit'
animals.remove('rabbit')

print('Updated animals list: ', animals)

Результат:

Updated animals list:  [‘cat’, ‘dog’, ‘guinea pig’]

 

Пример 2: Удаление элемента, который не существует.

animals = ['cat', 'dog', 'rabbit', 'guinea pig']

# удаление элемента 'fish'
animals.remove('fish')

print('Updated animals list: ', animals)

Результат:

Traceback (most recent call last):

 File «<string>», line 5, in <module>

ValueError: list.remove(x): x not in list


Метод:

list.pop([index])

Описание:

Удаляет элемент по указанному индексу из списка и возвращает удаленный элемент.

Параметры:

index — индекс искомого элемента в списке (целое число). Если индекс не указан, то удаляется последний элемент списка. Индексация начинается с нуля. Также поддерживается отрицательная индексация. Если индекс, переданный методу, вне диапазона списка, то возбуждается исключение IndexError.

Возвращаемое значение:

Элемент [по указанному индексу], который был удален из списка.

Примечание:

Если нужно удалить элемент из списка не возвращая его, используйте list.remove().

Также вы можете использовать инструкцию del для удаления  элементов или срезов из списка.

Примеры:

Пример 1: Удаление элемента из списка по индексу.

languages = ['Python', 'Java', 'C++', 'French', 'C']

# удалить элемент по индексу 3 из списка и вернуть его
return_value = languages.pop(3)

print('Return Value:', return_value)
print('Updated List:', 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++’]


Метод:

list.clear()

Описание:

Удаляет все элементы из списка.

Параметры:

Метод не принимает никаких аргументов.

Возвращаемое значение:

Модифицирует исходный список.  Возвращает None.

Примечание:

Также для удаления всех элементов из списка можно использовать инструкцию del:

list = [{1, 2}, ('a'), ['1.1', '2.2']]

del list[:]

# Output: List: []
print('List:', list)

Примеры:

list = [{1, 2}, ('a'), ['1.1', '2.2']]

# очистить список
list.clear()

print('List:', list)

Результат:

List: []

Получение информации

Метод:

list.index(element [,start [, end]])

Описание:

Возвращает индекс первого вхождения искомого значения в списке.

Параметры:

element — искомое значение.

start — индекс, с которого начинается поиск элемента. Необязательный аргумент, по умолчанию равен нулю.

end — индекс, до которого ведется поиск элемента. Необязательный аргумент, по умолчанию равен len(list).

Возвращаемое значение:

Индекс искомого значения в списке.

Примечание:

Если элемент не найден, то возбуждается исключение ValueError.

Примеры:

Пример 1: Найти индекс элемента в списке.

vowels = ['a', 'e', 'i', 'o', 'i', 'u']

# индекс 'e' в списке vowels
index = vowels.index('e')
print('The index of e:', index)

# индекс первого элемента 'i' в списке vowels 
index = vowels.index('i')
print('The index of i:', index)

Результат:

The index of e: 1

The index of i: 2

 

Пример 2: Индекс элемента, которого нет в списке.

vowels = ['a', 'e', 'i', 'o', 'u']

# индекс 'p' в списке vowels
index = vowels.index('p')
print('The index of p:', index)

Результат:

Traceback (most recent call last):

  File «<string>», line 5, in <module>

ValueError: ‘p’ is not in list

 

Пример 3: Найти индекс элемента с параметрами start и end.

alphabets = ['a', 'e', 'i', 'o', 'g', 'l', 'i', 'u']

# индекс 'i' в списке alphabets  
index = alphabets.index('i')  # 2 
print('The index of i:', index)

# индекс  'i' при поиске начиная с 5-го элемента списка alphabets  
index = alphabets.index('i', 4)   # 6
print('The index of i:', index)

# индекс  'i'  между 4м и 6м элементами списка alphabets 
index = alphabets.index('i', 3, 5)   # Error!
print('The index of i:', index)

Результат:

The index of e: 2

The index of i: 6

Traceback (most recent call last):

  File «<string>», line 13, in <module>

ValueError: ‘i’ is not in list


Метод:

list.count(element)

Описание:

Возвращает количество вхождений указанного элемента в список.

Параметры:

element – элемент, количество вхождений которого надо определить.

Возвращаемое значение:

Количество вхождений указанного элемента в списке.

Примеры:

vowels = ['a', 'e', 'i', 'o', 'i', 'u']

# количество вхождений элемента 'i'
count = vowels.count('i')

print('The count of i is:', count)

# количество вхождений элемента 'p'
count = vowels.count('p')

print('The count of p is:', count)

Результат:

The count of i is: 2

The count of p is: 0

Изменение списка

Метод:

list.sort([key [, reverse]])

Описание:

Сортирует элементы данного списка.

Параметры:

key — функция, на основе которой сортируется список. Необязательный аргумент, по умолчанию равен None.

reverse — булево значение; указывает, нужно ли производить сортировку в убывающем порядке. Необязательный аргумент, по умолчанию равен False.

Возвращаемое значение:

Модифицирует исходный список.  Возвращает None.

Примечание:

Вы также можете использовать функцию sorted() для сортировки списка. Различие между методом sort() и функцией sorted() заключается в следующем: sort() изменяет исходный список и не возвращает ничего (None), тогда как sorted() не изменяет переданный список и возвращает новый отсортированный список.

Можно использовать лямбда-функции, когда функция может быть записана в одну строку. Пример 3 (приведенный ниже) можно написать следующим образом:

# сортировка по имени (в порядке возрастания)
employees.sort(key=lambda x: x.get('Name'))

# сортировка по возрасту (в порядке возрастания)
employees.sort(key=lambda x: x.get('age'))

# сортировка по зарплате (в порядке убывания)
employees.sort(key=lambda x: x.get('salary'), reverse=True)

Примеры:

Пример 1: Сортировка списка.

vowels = ['e', 'a', 'u', 'o', 'i']

# сортировка списка vowels
vowels.sort()

print('Sorted list:', vowels)

Результат:

Sorted list: [‘a’, ‘e’, ‘i’, ‘o’, ‘u’]

 

Пример 2: Сортировка списка по убыванию.

vowels = ['e', 'a', 'u', 'o', 'i']

# сортировка списка vowels
vowels.sort(reverse=True)

print('Sorted list (in Descending):', vowels)

Результат:

Sorted list (in Descending): [‘u’, ‘o’, ‘i’, ‘e’, ‘a’]

 

Пример 3: Сортировка списка на основе собственной функции.

employees = [
    {'Name': 'Alan Turing', 'age': 25, 'salary': 10000},
    {'Name': 'Sharon Lin', 'age': 30, 'salary': 8000},
    {'Name': 'Mikhail Tal', 'age': 40, 'salary': 15000},
]

# функции для получения информации о сотрудниках
def get_name(employee):
    return employee.get('Name')

def get_age(employee):
    return employee.get('age')

def get_salary(employee):
    return employee.get('salary')

# сортировка по имени (в порядке возрастания)
employees.sort(key=get_name)
print(employees, end='\n\n')

# сортировка по возрасту (в порядке возрастания)
employees.sort(key=get_age)
print(employees, end='\n\n')

# сортировка по зарплате (в порядке убывания)
employees.sort(key=get_salary, reverse=True)
print(employees, end='\n\n')

Результат:

[{‘Name’: ‘Alan Turing’, ‘age’: 25, ‘salary’: 10000}, {‘Name’: ‘Mikhail Tal’, ‘age’: 40, ‘salary’: 15000}, {‘Name’: ‘Sharon Lin’, ‘age’: 30, ‘salary’: 8000}]

 

[{‘Name’: ‘Alan Turing’, ‘age’: 25, ‘salary’: 10000}, {‘Name’: ‘Sharon Lin’, ‘age’: 30, ‘salary’: 8000}, {‘Name’: ‘Mikhail Tal’, ‘age’: 40, ‘salary’: 15000}]

 

[{‘Name’: ‘Mikhail Tal’, ‘age’: 40, ‘salary’: 15000}, {‘Name’: ‘Alan Turing’, ‘age’: 25, ‘salary’: 10000}, {‘Name’: ‘Sharon Lin’, ‘age’: 30, ‘salary’: 8000}]

Метод:

list.reverse()

Описание:

Перестраивает элементы списка в обратном порядке.

Параметры:

Метод не принимает никаких аргументов.

Возвращаемое значение:

Модифицирует исходный список.  Возвращает None.

Примечание:

Если вам нужно получить доступ к элементам списка в обратном порядке, то лучше использовать функцию reversed().

Список также можно перевернуть при помощи срезов:

systems = ['Windows', 'macOS', 'Linux']

reversed_list = systems[::-1]

# Output: ['Linux', 'macOS', 'Windows']
print(reversed_list)

Примеры:

systems = ['Windows', 'macOS', 'Linux']
print('Original List:', systems)

# перевернуть список
systems.reverse()

# вывести обновленный список
print('Updated List:', systems)

Результат:
Original List: [‘Windows’, ‘macOS’, ‘Linux’]
Updated List: [‘Linux’, ‘macOS’, ‘Windows’]

Копирование списка

Метод:

list.copy()

Описание:

Возвращает поверхностную копию списка (без рекурсивного копирования вложенных элементов).

Параметры:

Метод не принимает никаких аргументов.

Возвращаемое значение:

Новый список. Не модифицирует исходный список.

Примечание:

Вы также можете копировать список, используя срезы:

list = ['cat', 0, 6.7]

new_list = list[:]

# Output: New List: ['cat', 0, 6.7]
print('New List:', new_list)

Примеры:

my_list = ['cat', 0, 6.7]

# копирование списка
new_list = my_list.copy()

print('Copied List:', new_list)

Результат:
Copied List: [‘cat’, 0, 6.7]