Списки в Python: полное руководство по методам
Методы списков в Python
Самым эффективным способом изменения списков является использование встроенных методов. Они реализованы на C и работают быстрее, чем самодельные конструкции. Например, для сортировки списка следует применять метод sort(), а для поиска индекса - index().
data = [5, 2, 8, 1, 9]
data.sort()
print(data)Python list element (получение элемента списка в python)
[1, 2, 5, 8, 9]
Python add to list (добавление элемента в список)
Как добавить один элемент в конец списка?
Метод append() принимает один аргумент и добавляет его в конец. Альтернатива - оператор += или конкатенация с +, но они создают новый список.
items = ['a', 'b']
items.append('c')
print(items)
Python copy list (копирование списка в python)
['a', 'b', 'c']
Python list extend (метод extend для списка)
Как объединить два списка?
Метод extend() принимает итерируемый объект и добавляет все его элементы в список. Альтернатива - оператор += или создание нового списка через list1 + list2.
a = [1, 2, 3]
b = [4, 5]
a.extend(b)
print(a)Python list reverse (реверс списка в python)
[1, 2, 3, 4, 5]
Python empty list (создание пустого списка)
Как вставить элемент в произвольную позицию?
Метод insert(index, element) вставляет элемент перед указанным индексом. Если индекс больше длины, элемент вставляется в конец.
names = ['Anna', 'Bob', 'Diana']
names.insert(2, 'Charlie')
print(names)Python list slice (срезы списков в python)
['Anna', 'Bob', 'Charlie', 'Diana']
Python filter list (фильтрация списка с помощью filter)
Как удалить элемент по значению?
Метод remove(x) удаляет первое вхождение элемента со значением x. Если элемент не найден, возникает ValueError.
colors = ['red', 'blue', 'green', 'blue']
colors.remove('blue')
print(colors)Python list function (функции для работы со списками)
['red', 'green', 'blue']
Python добавить элемент в массив (добавление элемента в конец списка (append) в python)
Как удалить элемент по индексу и получить его?
Метод pop(index) удаляет элемент по индексу и возвращает его. Если индекс не указан, удаляется последний элемент. Альтернатива - оператор del list[index], который не возвращает значение.
nums = [10, 20, 30, 40]
last = nums.pop()
print(last, nums)элемент двумерного массива python (доступ к элементу двумерного массива (списка списков) в python)
40 [10, 20, 30]
Python обратиться к элементу списка (обращение к элементу списка по индексу в python)
first = nums.pop(0)
print(first, nums)как заменить элемент в списке python (замена элемента в списке по индексу (list[2] = new_value) в python)
10 [20, 30]
количество элементов массива python (количество элементов в списке (массиве) с помощью len в python)
Как получить индекс элемента?
Метод index(x, start, end) возвращает индекс первого вхождения. Можно указать диапазон поиска.
letters = ['a', 'b', 'c', 'b', 'd']
pos = letters.index('b')
print(pos)Python 3 индекс элемента (получение индекса элемента в списке/строке python 3)
1
Python максимальный элемент массива (поиск максимального элемента в списке с помощью max в python)
Как подсчитать количество вхождений элемента?
Метод count(x) возвращает число раз, которые x встречается в списке.
scores = [1, 2, 2, 3, 2, 4]
print(scores.count(2))Python одинаковые элементы списков (поиск одинаковых (повторяющихся) элементов в списках python)
3
Find elements python (поиск элементов в списке по условию (list comprehension, filter) в python)
Как отсортировать список?
Метод sort(key=None, reverse=False) сортирует список на месте. Для получения нового отсортированного списка используется функция sorted().
values = [3, 1, 2]
values.sort()
print(values)произведение элементов списка python (вычисление произведения элементов списка (через цикл или reduce) в python)
[1, 2, 3]
Python случайный элемент списка (выбор случайного элемента из списка (random.choice) в python)
Как перевернуть список?
Метод reverse() переворачивает порядок элементов на месте. Функция reversed() возвращает итератор для обратного обхода.
lst = [1, 2, 3, 4]
lst.reverse()
print(lst)как удалить элемент по индексу python (удаление элемента из списка по индексу в python)
[4, 3, 2, 1]
Как создать копию списка?
Метод copy() возвращает поверхностную копию списка. Альтернативы: срез list[:] или list(list).
original = [1, 2, [3, 4]]
copy_list = original.copy()
print(copy_list)
[1, 2, [3, 4]]
Как получить подсписок (срез)?
Срез списка с помощью list[start:stop:step] создаёт новый список из элементов указанного диапазона. Можно опускать start, stop, step.
arr = [0, 1, 2, 3, 4, 5]
sub = arr[1:4]
print(sub)
[1, 2, 3]
even = arr[::2]
print(even)
[0, 2, 4]
Расширенные примеры использования функций списков
Ниже приведены более сложные и неочевидные способы работы со списками, которые расширяют возможности базовых методов.
Сортировка с пользовательским ключом
Метод sort() и функция sorted() поддерживают параметр key, который позволяет задать функцию для извлечения сравниваемого значения. Например, сортировка строк по длине, игнорирование регистра, сортировка по второму элементу кортежа.
# Сортировка строк по длине в порядке убывания
words = ['python', 'java', 'c', 'javascript']
words.sort(key=len, reverse=True)
print(words)
# Сортировка кортежей по второму элементу
pairs = [(1, 'banana'), (2, 'apple'), (3, 'cherry')]
pairs.sort(key=lambda x: x[1])
print(pairs)
# Сортировка без учета регистра
mixed = ['Apple', 'banana', 'Cherry', 'date']
sorted_mixed = sorted(mixed, key=str.lower)
print(sorted_mixed)
['javascript', 'python', 'java', 'c'] [(2, 'apple'), (1, 'banana'), (3, 'cherry')] ['Apple', 'banana', 'Cherry', 'date']
Генерация нового списка с помощью list comprehension
List comprehension (списковое включение) позволяет создавать списки на основе существующих с применением выражений и фильтров. Это более эффективно и читаемо, чем цикл for с append.
# Квадраты чисел от 0 до 9
squares = [x**2 for x in range(10)]
print(squares)
# Четные числа из исходного списка
numbers = [1, 2, 3, 4, 5, 6]
evens = [n for n in numbers if n % 2 == 0]
print(evens)
# Замена строк на их длину, если строка длиннее 3
words = ['hi', 'hello', 'ok', 'awesome']
lengths = [len(w) for w in words if len(w) > 3]
print(lengths)
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81] [2, 4, 6] [5, 7]
Применение функций map и filter
Встроенные функции map() и filter() позволяют применить функцию к каждому элементу или отфильтровать элементы, возвращая итераторы. Их можно преобразовать в список.
# Преобразование строк в числа
str_nums = ['1', '22', '333']
int_nums = list(map(int, str_nums))
print(int_nums)
# Фильтрация положительных чисел
nums = [-5, 3, -2, 7, 0, -1]
positive = list(filter(lambda x: x > 0, nums))
print(positive)
[1, 22, 333] [3, 7]
Сглаживание вложенных списков
Если список содержит другие списки, можно создать одномерный список с помощью вложенного list comprehension или функций chain из itertools.
nested = [[1, 2], [3, 4, 5], [6]]
flattened = [item for sublist in nested for item in sublist]
print(flattened)
# Эквивалент с использованием itertools.chain
from itertools import chain
flat_chain = list(chain.from_iterable(nested))
print(flat_chain)
[1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6]
Создание списка кортежей из двух списков с помощью zip
Функция zip() объединяет элементы нескольких итераторов в кортежи. Результат можно преобразовать в список.
names = ['Alice', 'Bob', 'Charlie']
scores = [85, 92, 78]
combined = list(zip(names, scores))
print(combined)
# Распаковка zip обратно при необходимости
unique = list(zip(*combined))
print(unique)
[('Alice', 85), ('Bob', 92), ('Charlie', 78)]
[('Alice', 'Bob', 'Charlie'), (85, 92, 78)]
Получение индекса и значения с enumerate
Функция enumerate() возвращает пары (индекс, значение). Удобно при необходимости изменять элементы по индексу или создавать отображение.
letters = ['a', 'b', 'c']
indexed = list(enumerate(letters))
print(indexed)
# Создание списка строк с номерами
numbered = [f'{i}: {ch}' for i, ch in enumerate(letters, start=1)]
print(numbered)
[(0, 'a'), (1, 'b'), (2, 'c')] ['1: a', '2: b', '3: c']
Использование reduce для вычисления произведения
Функция reduce() из модуля functools свёртывает список в одно значение с помощью бинарной операции. Например, произведение всех элементов.
from functools import reduce
import operator
numbers = [2, 3, 4]
product = reduce(operator.mul, numbers)
print(product)
# Максимальное значение через reduce
max_val = reduce(lambda a, b: a if a > b else b, numbers)
print(max_val)
24 4