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