Списки в Python
Alexandr SemenenkoО списках
Список — это изменяемая последовательность объектов, причём в одном списке можно хранить объекты разных типов.
Списки записываются в квадратных скобках.
my_list = [1, 2, 3, 4, 'пять']
В коде выше мы создали список [1, 2, 3, 4, ‘пять’] и связали его с переменной my_list. Как видите, наш список хранит и числа и строки. Но Python определяет тип объектов во время выполнения, а не при их объявлении в коде. Поэтому, если например, мы захотим из каждого элемента списка отнять 1, а там окажется строка, то ошибка появится во время выполнения, а не во время компиляции.
Индексация и срезы
Список, так же как и строка индексирует свои элементы:
- слева направо, начиная с 0;
- справа налево, начиная с -1.
my_list = ["yellow", "red", "green"] print(my_list[0]) # yellow print(my_list[-1]) # green
Так как список — это изменяемый тип данных, то мы можем изменить его, не создавая новый. Мы можем изменить объект из списка обратившись к нему по индексу.
my_list = [1, 2, 3, 4, 'пять'] print(id(my_list)) # 1906747850496 my_list[4] = 5 print(id(my_list)) # 1906747850496
Индексы позволяют создавать срезы. Запомните, когда вы указываете срез, то указываете от какого элемента (включительно) и до какого элемента (не включительно). И дополнительно можете указать шаг среза, например каждый второй элемент, или каждый третий, и так далее.
print(my_list[0:2]) # ['yellow', 'red'] print(my_list[0:3:2]) # ['yellow', 'green']
Чтобы перевернуть срез, просто укажите шаг среза -1.
print(my_list[::-1]) # ['green', 'red', 'yellow']
Методы списков
append
Позволяет добавлять элемент в конец списка.
my_list = [1, 2, 3, 4] my_list.append(5) # Добавили элемент в конец списка print(my_list) # [1, 2, 3, 4, 5]
insert
Позволяет вставлять элемент на указанный индекс. При этом список как бы раздвигается.
my_list.insert(2, "два") # на 2-ой индекс вставляем строку "два" print(my_list) # [1, 2, 'два', 3, 4, 5]
extend
Позволяет расширить список другим списком.
my_list1 = [1, 2, 3] my_list2 = [4, 5, 6] my_list1.extend(my_list2) print(my_list1) # [1, 2, 3, 4, 5, 6]
remove
Позволяет удалить элемент из списка по значению элемента.
my_list = [7, 4, 5, 1, 3] my_list.remove(5) print(my_list) # [7, 4, 1, 3]
pop
Позволяет удалить элемент из списка по индексу.
my_list = [7, 4, 5, 1, 3] my_list.pop(1) print(my_list) # [7, 5, 1, 3]
clear
Очищает список.
my_list = [7, 4, 5, 1, 3] my_list.clear() print(my_list) # []
sort
Сортирует список.
my_list = [7, 4, 5, 1, 3] my_list.sort() print(my_list) # [1, 3, 4, 5, 7]
Но если нужно отсортировать список кортежей:
my_list = [(23, 18, 53), (18, 51, 48), (27, 38, 24), (15, 12, 33)] # Сортировка по первому элементу my_list.sort() print(my_list) # [(15, 12, 33), (18, 51, 48), (23, 18, 53), (27, 38, 24)] # Сортировка по второму элемемту my_list.sort(key=lambda i: i[1]) print(my_list) # [(15, 12, 33), (23, 18, 53), (27, 38, 24), (18, 51, 48)] # Сортировка по третьему элемемту my_list.sort(key=lambda i: i[2]) print(my_list) # [(27, 38, 24), (15, 12, 33), (18, 51, 48), (23, 18, 53)]
count
Позволяет посчитать сколько раз элемент встречается в списке.
my_list = [1, 3, 2, 5, 4, 6, 2, 1, 2, 1, 7,1] print(my_list.count(2)) # 3
copy
Копирование списка.
my_list_1 = [1, 3, 5, 7] my_list_2 = my_list_1.copy() print(my_list_2) # [1, 3, 5, 7]
Функции для работы со списками
len
Выводит длину списка.
my_list = [1, 3, 5, 7] print(len(my_list)) # 4
min / max
Минимальное и максимальное значение.
my_list = [1, 3, 5, 7] print(min(my_list)) # 1 print(max(my_list)) # 7
sum
Сумма элементов.
my_list = [1, 3, 5, 7] print(sum(my_list)) # 16
Операторы для работы со списками
Объединение ( + )
my_list_1 = [1, 4, 7, 2] my_list_2 = [5, 8, 2, 4] print(my_list_1 + my_list_2) # [1, 4, 7, 2, 5, 8, 2, 4]
Повторение строк ( * )
my_list_1 = [1, 2, 3] print(my_list_1 * 3) # [1, 2, 3, 1, 2, 3, 1, 2, 3]
При повторении, умножать можно только на целое число. При этом, если умножить на 0 или отрицательное число, то получим пустой список.
Проверка наличия элемента ( in )
my_list_1 = [1, 4, 7, 2] print(1 in my_list_1) # True print(3 in my_list_1) # False