Список — это изменяемая, упорядоченная коллекция элементов в Python. Он может содержать элементы разных типов (числа, строки, другие списки и т. д.). В Python списки обозначаются квадратными скобками [].
Пример создания списка:
my_list = [1, 2, 3, "яблоко", True]
Здесь my_list — это список с числами, строкой и булевым значением.
В Python для списков поддерживается индексация по аналогии со строками. Напомним, что индексация начинается с 0. Тогда для нашего списка индексы будут следующие:
Индекс
0
1
2
3
4
Элемент
1
2
3
"яблоко"
True
print(my_list[2]) # Выведет: 3
Можно использовать отрицательные индексы — отсчёт ведётся с конца:
Иногда нам хочется достать не отдельные символы, а сразу целые последовательности элементов. Для этого нужны срезы.
Срез позволяет получить часть списка.
Записывается срез так: list[начало:конец:шаг].
начало — индекс первого элемента, который взять (включительно).
конец — индекс элемента, на котором заканчиваем брать (не включительно).
шаг — через сколько брать элементы (по умолчанию 1, значит взять подряд все). Если шаг отрицательный — то элементы берутся с конца.
Если какой-то из параметров не указывать, Python возьмёт значения по умолчанию: начало — с 0, то есть с начала списка; конец — до конца списка; шаг — 1.
Примеры:
list[1:4] — взять с 2-го по 4-й элемент (индексы 1, 2, 3).
list[:3] — взять с начала до 3-го элемента (0,1,2).
list[:2] — взять каждый второй элемент всего списка.
list[:-1] — взять все элементы в обратном порядке.
Рассмотрим несколько примеров:
numbers = [10, 20, 30, 40, 50, 60]
numbers[1:4] — элементы с 1-го по 3-й (4 — не включительно):
print(numbers[1:4]) # [20, 30, 40]
numbers[:3] — три первых элемента:
print(numbers[:3]) # [10, 20, 30]
numbers[3:] — элементы с 4-го до конца:
print(numbers[3:]) # [40, 50, 60]
numbers[:-1] — разворачивает список:
print(numbers[::-1]) # [60, 50, 40, 30, 20, 10]
Отметим, что для строк можно также реализовывать срезы по такому же принципу.
Конечно, как и у строк, у списков есть методы. Приведем примеры некоторых из них:
1. append (): Добавить элемент в конец списка
Этот метод добавляет новый элемент в конец списка. В примере ниже к списку с яблоком и бананом добавляем грушу — она становится последним элементом.
2. insert (): Вставить элемент на определённую позицию
Этот метод вставляет элемент в конкретное место списка, указанное индексом. В примере ниже мы вставляем апельсин на позицию 1, то есть между первым (яблоко) и вторым (банан) элементом.
fruits.insert(1, 'апельсин') # Вставить между 'яблоко' и 'банан'
print(fruits) # ['яблоко', 'апельсин', 'банан', 'груша']
3. remove (): Удалить первый найденный элемент по значению
Этот метод ищет и удаляет первый элемент с указанным значением. В примере ниже убираем банан из списка, и он больше не появляется.