Списки в Python — это структура данных для хранения множества элементов. В других языках такие структуры данных называют динамические массивы. Динамические — это значит, что длина не должны задаваться заранее и в такой массив всегда можно поместить данные.
Другой особенностью списков является, то что в них могут хранится данные разных типов. В том числе и списки.
Эти две особенности сильно отличают Python других языков программирования. Например в Pascal массив это конечная группа переменных одного типа:
Var a:array[1..5] of integer;
Примеры использования списков в Python
Списки используются для хранения списка элементов любого типа с возможностью получить доступ по индексу к любому элементу.
# Список среднесуточной температуры в Уфе на этой неделе
temperature = [5, 9, 7, 0, -2, -10, 3]
# Список покупок
buy = ["хлеб", "молоко", "масло"]
# Список может состоять из списков
a = [[1, 2, 9],
[8, 7, 6],
[5, 2, 3]]
# Список может состоять из элементов разных типов
# Это имеет смысл например когда в списке значений одной строки таблицы с данными
# Информация о товарах, ценах и остатках на складе
a = [["Пылесос", 15000, 9],
["Холодильник", 45000, 6],
["Кофеварка", 25000, 3]]
Способы создания списков в Python
Есть несколько способов создания списков
# Способ 1. В коде
a = [5, 9, 7]
# Способ 2. Добавлением элементов
a = []
a.append(5)
a.append(9)
a.append(7)
# Способ 3 через генератор списков
a = [5, 9, 7]
b = [i * 3 for i in a]
print(b)
# Способ 4 через функцию List() и итерируемый объект (строка, range, файлб спискиб кортежи)
a = list("ваппавпвап")
b = list(range(10))
Как можно работать со списками в Python?
Главная особенность списка — это, то что у каждого элемента есть свой индекс. Индексы начинаются с 0. Каждый элемент списка можно получить по его индексу. Так же можно перебрать все элементы списка в цикле — для этого хорошо подходит цикл for.
# Доступ к элементу списка по индексу
a = [12, 18, 3, 7, 56, 7, 11, 8]
b = a[2]
# Способы перебрать все элементы в списке
# Способ 1
for i in a:
print(i)
# Способ 2
dl = len(a)
for i in range(dl):
print(a[i])
# Способ 3
for i, j in enumerate(a):
print("индекс:",i,"значение",j)
Есть возможность проверить принадлежит ли значение списку. Для этого нужно использовать конструкцию «in». Ее удобно использовать в условии if.
a = [1,12,7]
if 12 in a:
print("принадлежит списку")
else:
print("не принадлежит списку")
Способы изменения списков в Python
Списки — это динамические массивы. Это значит их можно изменять: можно добавлять элемент в конец списка или в любую произвольную позицию, можно удалять элементы из списка. Все способы изменения списков в примере:
# Методы изменения списка
a = ["красный", "желтый", "синий"]
a.append("зеленый") # добавить элемент в конец списка
a.insert(1, "оранжевый") # вставить элемент в нужную позицию в списке
a.remove("красный") # удалить по значению
a.pop(1) # удалить по индексу
a.sort() # отсортировать от меньшего к большему
a.sort(reverse = True) # отсортировать от большего к меньшему
a.reverse() # развернуть список
# сложение и умножение
a = [12, 18, 3]
b = [7, 11, 8]
c = a + b # в конец списка а добавить список б
c = a * 3 # в конец списка а добавить список a еще 2 раза
Способы получения данных из списков
Из списков можно извлекать данные. Самый распространенный способ — это получения элементы по индексу a[5]. Но есть и другие функции:
# Получение элементы по индексу
a = ["красный", "желтый", "синий"]
b = a[1]
# Функции для получения данных из списка
ind = a.index("синий")# индекс элемента со значением "синий"
kol = a.count("синий") #количество элементов со значением "синий"
b = a.copy() #новый список созданный копированием списка a
dlin = len(a) #длина списка
# срезы
a = [12, 18, 3, 7, 56, 7, 11, 8]
b = a[0:2:1] # будет создан срез с 0 индекса включительно по 2 индекс (не вкл) с шагом 2
Задачи для работы со списками в Python
Классические алгоритмы для работы со списками — это нахождение индекса элемента в списке и нахождение наибольшего и наименьшего элемента в списке.
# Найти позицию заданного элемента в списке
# Способ 1
dl = len(a)
for i in range(dl):
if a[i] == 7:
print(i)
# Способ 2
for i, j in enumerate(a):
if j == num:
print(i)
# Найти наименьший элемент в списке
m = a[0]
for i in a:
if i < m:
m = i
print("min = ", m)
