Методы списков Python
В Python у списков есть множество методов, описание которых приведено ниже.
Добавление элементов
Добавляет один элемент в конец списка.
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() .
Добавляет все элементы итерируемого объекта (списка, кортежа, строки и т. д.) в конец списка.
iterable — итерируемый объект, элементы которого будут добавлены в список.
Возвращаемое значение:
Модифицирует исходный список. Возвращает None .
Вы также можете добавить все элементы итерируемого объекта в список, используя:
a = [1, 2] b = [3, 4] a += b # Output: [1, 2, 3, 4] print(a)
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 = # добавление элементов кортежа 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’]
Добавляет элемент в список по указанному индексу.
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 = [, [5, 6, 7]] number_tuple = (3, 4) # вставка кортежа по индексу 1 mixed_list.insert(1, number_tuple) print('Updated List:', mixed_list)
Удаление элементов
Удаляет первый найденный в списке элемент, значение которого соответствует значению, переданному в качестве аргумента.
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):
ValueError: list.remove(x): x not in list
Удаляет элемент по указанному индексу из списка и возвращает удаленный элемент.
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)
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)
Updated List: [‘Python’, ‘Java’, ‘C++’, ‘Ruby’]
Updated List: [‘Python’, ‘Java’, ‘C++’]
Удаляет все элементы из списка.
Метод не принимает никаких аргументов.
Возвращаемое значение:
Модифицирует исходный список. Возвращает None .
Также для удаления всех элементов из списка можно использовать инструкцию del :
list = [, ('a'), ['1.1', '2.2']] del list[:] # Output: List: [] print('List:', list)
list = [, ('a'), ['1.1', '2.2']] # очистить список list.clear() print('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)
Пример 2: Индекс элемента, которого нет в списке.
vowels = ['a', 'e', 'i', 'o', 'u'] # индекс 'p' в списке vowels index = vowels.index('p') print('The index of p:', index)
Traceback (most recent call last):
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)
Traceback (most recent call last):
ValueError: ‘i’ is not in list
Возвращает количество вхождений указанного элемента в список.
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)
Изменение списка
Сортирует элементы данного списка.
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)
Пример 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 = [ , , , ] # функции для получения информации о сотрудниках 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')
Перестраивает элементы списка в обратном порядке.
Метод не принимает никаких аргументов.
Возвращаемое значение:
Модифицирует исходный список. Возвращает 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 = ['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]