Элементы списка в Python: методы и примеры
Список (list) в Python – это упорядоченная изменяемая коллекция произвольных объектов. Каждый элемент имеет свой индекс, начиная с нуля. В статье рассматриваются основные операции с элементами списка: доступ, изменение, добавление, удаление, а также продвинутые приемы.
Основные операции с элементами списка
Как получить элемент по индексу?
Наиболее прямой способ – обращение по индексу в квадратных скобках. Индекс может быть положительным (от 0 до n-1) или отрицательным (-1 – последний элемент).
my_list = [10, 20, 30, 40]
print(my_list[0]) # 10
print(my_list[-1]) # 40Python элемент массива (элемент массива в python)
Результат:
10 40
Ошибка IndexError возникает при выходе за границы списка. Всегда проверяйте длину списка функцией len().
Как изменить элемент списка?
Присвоение нового значения по индексу изменяет существующий элемент.
my_list = [1, 2, 3]
my_list[1] = 99
print(my_list) # [1, 99, 3]Как добавить элемент в конец?
Метод append() добавляет один элемент в конец списка.
my_list = [1, 2]
my_list.append(3)
print(my_list) # [1, 2, 3]Если передать в append() список, он будет добавлен как один вложенный элемент.
Как вставить элемент в произвольное место?
Метод insert(index, value) вставляет элемент перед указанным индексом.
my_list = [1, 3]
my_list.insert(1, 2)
print(my_list) # [1, 2, 3]Как удалить элемент по индексу?
Команда del удаляет элемент по индексу. Метод pop(index) удаляет и возвращает элемент.
my_list = [10, 20, 30]
del my_list[1]
print(my_list) # [10, 30]
val = my_list.pop()
print(val, my_list) # 30 [10]При неверном индексе del и pop() вызывают IndexError.
Как найти индекс элемента по значению?
Метод index(value) возвращает первый индекс, где найдено значение. Если элемент отсутствует, возникает ValueError. Можно указать начало и конец поиска.
my_list = [10, 20, 30, 20]
idx = my_list.index(20)
print(idx) # 1
# Поиск с индекса 2:
idx2 = my_list.index(20, 2)
print(idx2) # 3Дополнительные расширенные примеры работы с элементами списков в Python.
# Срез списка и замена целого диапазона
numbers = [0, 1, 2, 3, 4, 5]
numbers[1:4] = [10, 11, 12]
print(numbers) # [0, 10, 11, 12, 4, 5]
# Удаление диапазона с помощью del
del numbers[1:4]
print(numbers) # [0, 4, 5][0, 10, 11, 12, 4, 5] [0, 4, 5]
# Использование list comprehension для фильтрации элементов
data = [1, 2, 3, 4, 5, 6]
even = [x for x in data if x % 2 == 0]
print(even) # [2, 4, 6]
# Преобразование элементов с помощью map и lambda
squared = list(map(lambda x: x**2, data))
print(squared) # [1, 4, 9, 16, 25, 36][2, 4, 6] [1, 4, 9, 16, 25, 36]
# Работа с многомерными списками (матрицы)
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# Получение элемента второй строки, третьего столбца
element = matrix[1][2]
print(element) # 6
# Изменение целого столбца
for row in matrix:
row[0] = 0
print(matrix) # [[0, 2, 3], [0, 5, 6], [0, 8, 9]]6 [[0, 2, 3], [0, 5, 6], [0, 8, 9]]
# Использование enumerate для получения индекса и значения
fruits = ['apple', 'banana', 'cherry']
for idx, fruit in enumerate(fruits):
print(f'{idx}: {fruit}')
# Вывод:
# 0: apple
# 1: banana
# 2: cherry
# Сортировка списка с элементами разных типов (только сравнимые)
mixed = [3, 1, 2]
mixed.sort()
print(mixed) # [1, 2, 3]0: apple 1: banana 2: cherry [1, 2, 3]
# Глубокое копирование списка (чтобы не модифицировать оригинал)
import copy
original = [[1, 2], [3, 4]]
shallow = original.copy() # поверхностная копия
shallow[0][0] = 99
print(original) # [[99, 2], [3, 4]] – изменен!
deep = copy.deepcopy(original)
deep[0][0] = 100
print(original) # [[99, 2], [3, 4]] – не изменился
print(deep) # [[100, 2], [3, 4]][[99, 2], [3, 4]] [[99, 2], [3, 4]] [[100, 2], [3, 4]]
# Использование списка как стека (LIFO)
stack = []
stack.append('a')
stack.append('b')
stack.append('c')
last = stack.pop()
print(last) # c
print(stack) # ['a', 'b']
# Использование списка как очереди (FIFO) с помощью collections.deque
from collections import deque
queue = deque([1, 2, 3])
queue.append(4)
first = queue.popleft()
print(first) # 1
print(queue) # deque([2, 3, 4])c ['a', 'b'] 1 deque([2, 3, 4])