Python: список (list)
В Python списки позволяют хранить несколько элементов в одной переменной. Например, если вам нужно сохранить возраст всех студентов в классе, вы можете сделать это с помощью списка.
Списки похожи на массивы (динамические массивы, позволяющие хранить элементы разных типов данных) в других языках программирования.
Создание списка в Python
Мы создаём список, помещая элементы внутри квадратных скобок [] через запятую. Например,
# список из трёх элементов
ages = [19, 26, 29]
print(ages)
Вывод
[19, 26, 29]
Здесь список ages содержит три элемента.
Элементы списка разных типов
Списки в Python очень гибкие. Мы можем хранить в списке данные разных типов. Например,
# список со строками, числами и другим списком
student = ['Jack', 32, 'Computer Science', [2, 4]]
print(student)
# пустой список
empty_list = []
print(empty_list)
Характеристики списка
В Python списки:
Упорядочены — они сохраняют порядок элементов.
Изменяемы — элементы можно изменять после создания.
Допускают дубликаты — могут содержать повторяющиеся значения.
Доступ к элементам списка
Каждый элемент в списке связан с числом, известным как индекс. Индекс первого элемента — 0, второго — 1, и так далее.
Мы используем эти индексы для доступа к элементам списка. Например,
languages = ['Python', 'Swift', 'C++']
# доступ к первому элементу
print('languages[0] =', languages[0])
# доступ к третьему элементу
print('languages[2] =', languages[2])
Вывод
languages[0] = Python
languages[2] = C++
Отрицательные индексы
В Python список может также иметь отрицательные индексы. Индекс последнего элемента — -1, предпоследнего — -2, и так далее.
Рассмотрим пример.
languages = ['Python', 'Swift', 'C++']
# доступ к последнему элементу
print('languages[-1] =', languages[-1])
# доступ к третьему элементу с конца
print('languages[-3] =', languages[-3])
Вывод
languages[-1] = C++
languages[-3] = Python
Срезы списка
Если нам нужно получить доступ к части списка, мы можем использовать оператор среза :. Например,
my_list = ['p', 'r', 'o', 'g', 'r', 'a', 'm']
print("my_list =", my_list)
# получаем список с элементами от индекса 2 до индекса 4 (индекс 5 не включается)
print("my_list[2: 5] =", my_list[2: 5])
# получаем список с элементами от индекса 2 до индекса -3 (индекс -2 не включается)
print("my_list[2: -2] =", my_list[2: -2])
# получаем список с элементами от индекса 0 до индекса 2 (индекс 3 не включается)
print("my_list[0: 3] =", my_list[0: 3])
Вывод
my_list = ['p', 'r', 'o', 'g', 'r', 'a', 'm']
my_list[2: 5] = ['o', 'g', 'r']
my_list[2: -2] = ['o', 'g', 'r']
my_list[0: 3] = ['p', 'r', 'o']
Пропуск начального и конечного индексов при срезе
Если вы пропустите начальный индекс, срез начнётся с первого элемента. Аналогично, если вы пропустите последний индекс, срез закончится последним элементом. Например,
my_list = ['p', 'r', 'o', 'g', 'r', 'a', 'm']
print("my_list =", my_list)
# получаем список с элементами от индекса 5 до конца
print("my_list[5: ] =", my_list[5: ])
# получаем список от первого элемента до индекса -5
print("my_list[: -4] =", my_list[: -4])
# пропускаем и начальный, и конечный индексы
# получаем список от начала до конца
print("my_list[:] =", my_list[:])
Вывод
my_list = ['p', 'r', 'o', 'g', 'r', 'a', 'm']
my_list[5: ] = ['a', 'm']
my_list[: -4] = ['p', 'r', 'o']
my_list[:] = ['p', 'r', 'o', 'g', 'r', 'a', 'm']
Примечание
Если указанный индекс не существует в списке, Python выбрасывает исключение IndexError.
Добавление элементов в список
Как упоминалось ранее, списки изменяемы, и мы можем изменять их элементы. Чтобы добавить элемент в конец списка, мы можем использовать метод append(). Например,
fruits = ['apple', 'banana', 'orange']
print('Original List:', fruits)
fruits.append('cherry')
print('Updated List:', fruits)
Вывод
Original List: ['apple', 'banana', 'orange']
Updated List: ['apple', 'banana', 'orange', 'cherry']
Добавление элементов по указанному индексу
Мы можем вставить элемент по указанному индексу с помощью метода insert(). Например,
fruits = ['apple', 'banana', 'orange']
print("Original List:", fruits)
fruits.insert(2, 'cherry')
print("Updated List:", fruits)
Вывод
Original List: ['apple', 'banana', 'orange']
Updated List: ['apple', 'banana', 'cherry', 'orange']
Добавление элементов из других итерируемых объектов
Метод extend() добавляет все элементы указанного итерируемого объекта (список, кортеж, словарь или строка) в конец списка. Например,
numbers = [1, 3, 5]
print('Numbers:', numbers)
even_numbers = [2, 4, 6]
print('Even numbers:', numbers)
# добавляем элементы одного списка в другой
numbers.extend(even_numbers)
print('Updated Numbers:', numbers)
Вывод
Numbers: [1, 3, 5]
Even numbers: [2, 4, 6]
Updated Numbers: [1, 3, 5, 2, 4, 6]
Изменение элементов списка
Мы можем изменить элементы списка, присвоив новые значения с помощью оператора =. Например,
colors = ['Red', 'Black', 'Green']
print('Original List:', colors)
# меняем первый элемент на 'Purple'
colors[0] = 'Purple'
# меняем третий элемент на 'Blue'
colors[2] = 'Blue'
print('Updated List:', colors)
Вывод
Original List: ['Red', 'Black', 'Green']
Updated List: ['Purple', 'Black', 'Blue']
Здесь мы заменили элемент по индексу 0 на 'Purple', а элемент по индексу 2 на 'Blue'.
Удаление элементов из списка
Мы можем удалить указанный элемент из списка с помощью метода remove(). Например,
numbers = [2,4,7,9]
# удаляем 4 из списка
numbers.remove(4)
print(numbers)
Вывод
[2, 7, 9]
Удаление одного или нескольких элементов списка
Вместо использования метода remove() мы можем удалить элемент из списка с помощью оператора del. Оператор del также можно использовать для удаления нескольких элементов или даже всего списка.
names = ['John', 'Eva', 'Laura', 'Nick', 'Jack']
# удаляем элемент по индексу 1
del names[1]
print(names)
# удаляем элементы с индекса 1 по индекс 2
del names[1: 3]
print(names)
# удаляем весь список
del names
# Ошибка! Список не существует.
print(names)
Вывод
['John', 'Laura', 'Nick', 'Jack']
['John', 'Jack']
Traceback (most recent call last):
File "", line 15, in
NameError: name 'names' is not defined
Длина списка
Чтобы найти количество элементов (длину) списка, мы можем использовать встроенную функцию len(). Например,
cars = ['BMW', 'Mercedes', 'Tesla']
print('Total Elements:', len(cars))
Вывод
Total Elements: 3
Итерация по списку
Мы можем использовать цикл for для перебора элементов списка. Например,
fruits = ['apple', 'banana', 'orange']
# перебираем список
for fruit in fruits:
print(fruit)
Вывод
apple
banana
orange
Методы списка в Python
В Python есть много полезных методов списков, которые упрощают работу со списками.
Метод |
Описание |
|---|---|
|
Добавляет элемент в конец списка |
|
Добавляет элементы списков и других итерируемых объектов в конец списка |
|
Вставляет элемент по указанному индексу |
|
Удаляет указанное значение из списка |
|
Возвращает и удаляет элемент по заданному индексу |
|
Удаляет все элементы из списка |
|
Возвращает индекс первого совпавшего элемента |
|
Возвращает количество указанного элемента в списке |
|
Сортирует список по возрастанию/убыванию |
|
Изменяет порядок элементов на обратный |
|
Возвращает поверхностную копию списка |
Совет
Также читайте:
Python: list comprehension — краткий способ создать список из другой последовательности в одну строку.