Списки в Python

Списки в 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


Report Page