В Python списки — это упорядоченные изменяемые коллекции объектов произвольных типов (в большинстве языков программирования используется другой термин «массив»). Список представляет собой последовательность элементов, пронумерованных от 0, как символы в строке.
Чтобы использовать списки, их нужно создать. Создать список можно несколькими способами.
Создать список можно точно также, как и кортеж, но вместо круглых скобок применяются квадратные:
Чтобы использовать списки, их нужно создать. Создать список можно несколькими способами.
Создать список можно точно также, как и кортеж, но вместо круглых скобок применяются квадратные:
cars = ["audi", "vw", "lexus"]
print("Посмотрим, что у нас в гараже: ")
for item in cars:
print(item)
input()
Вывод программы:
Также список можно создать и при помощи литерала:
s = [] # Пустой список
l = ['s', 'p', ['isok'], 2]
print(s)
# выведет: []
print(l)
# выведет: ['s', 'p', ['isok'], 2]
input()
Список может содержать любое количество любых объектов (в том числе и вложенные списки), или не содержать ничего. И еще один способ создать список — это генераторы списков.
Генератор списков — способ построить новый список, применяя выражение к каждому элементу последовательности. Генераторы списков очень похожи на цикл for. Например:
Генератор списков — способ построить новый список, применяя выражение к каждому элементу последовательности. Генераторы списков очень похожи на цикл for. Например:
c = [c * 3 for c in 'list']
print(c)
input()
# выведет: ['lll', 'iii', 'sss', 'ttt']
Функция len()
К списку можно применять функцию len():
cars = ["audi", "vw", "lexus", "gtr", "m5"]
print("В гараже ", len(cars), " автомобилей")
input()
# выведет: В гараже 5 автомобилей
Оператор in
Оператор in можно использовать для поиска по списку. Пример:
cars = ["audi", "vw", "lexus", "gtr", "m5"]
car = input("Введите искомый автомобиль: ")
if car in cars:
print("У вас есть такой автомобиль!")
else:
print("У вас нет такого автомобиля :(")
input()
Индексация списков
Списки индексируются. Индексация начинается с 0, поддерживаются положительные и отрицательные индексы. Пример:
cars = ["audi", "vw", "lexus", "gtr", "m5"]
start = -len(cars)
end = len(cars)
for i in range(start, end, 1):
print("cars[", i, "] = ", cars[i])
input()
# будет выведено:
cars[ -5 ] = audi
cars[ -4 ] = vw
cars[ -3 ] = lexus
cars[ -2 ] = gtr
cars[ -1 ] = m5
cars[ 0 ] = audi
cars[ 1 ] = vw
cars[ 2 ] = lexus
cars[ 3 ] = gtr
cars[ 4 ] = m5
Сначала мы получаем начало (-len()) и конец (len()) диапазона. Потом проходимся по списку и указываем в качестве индекса переменную i, которая изменяется от start до end с приростом в 1.
Срезы списков
Списки поддерживают срезы. Принцип такой же, как и с кортежами: в квадратных скобках указываются начальный и конечный индексы среза:
cars = ["audi", "vw", "lexus", "gtr", "m5"]
start = int(input("Начальный индекс среза: "))
end = int(input("Конечный индекс среза: "))
print(cars[start:end])
input()
# вывод:
Начальный индекс среза: 2
Конечный индекс среза: 3
['lexus']
Сцепление списков
Списки поддерживают сцепление. Для сцепления списков используется оператор «+». Пример:
cars = ["audi", "vw", "lexus", "gtr", "m5"]
japan_cars = ["toyota", "nissan"]
cars = cars + japan_cars
print(cars)
input()
# выведет: ['audi', 'vw', 'lexus', 'gtr', 'm5', 'toyota', 'nissan']
Удаление элементов списка
Списки поддерживают удаление элементов, и даже удаление целых срезов. Пример:
cars = ["audi", "vw", "lexus", "gtr", "m5"]
del cars[0]
print(cars)
del cars[:2]
print(cars)
input()
# вывод:
['vw', 'lexus', 'gtr', 'm5']
['gtr', 'm5']
Методы списков
Для списков доступны основные встроенные функции, а также методы списков.
Стек и очереди
Список можно использовать как стек — когда последний добавленный элемент извлекается первым (LIFO, last-in, first-out). Для извлечения элемента с вершины стека есть метод pop():
stack = [1,2,3,4,5]
stack.append(6)
stack.append(7)
stack.pop()
print(stack)
input()
# вывод: [1, 2, 3, 4, 5, 6]
Список можно использовать как очередь — элементы извлекаются в том же порядке, в котором они добавлялись (FIFO, first-in, first-out). Для извлечения элемента используется метод pop() с индексом 0:
queue = ['rock','in','roll']
queue.append('alive')
queue.pop(0)
print(queue)
input()
# вывод: ['in', 'roll', 'alive']
Программа «Гараж»
Для закрепления материала создадим программу «Гараж». Данная программа демонстрирует все операции над списком.
cars = []
print("*" * 10, " Гараж ", "*" * 10)
responce = 1
while responce:
print("""Выберите действие:
1 - Добавить автомобиль
2 - Удалить автомобиль
3 - Вывести список автомобилей
4 - Найти автомобиль
5 - Отсортировать гараж
0 - Выйти""")
responce = int(input(">> "))
if responce == 1:
car = input("Введите название авто: ")
cars.append(car)
elif responce == 2:
car = input("Введите название авто: ")
cars.remove(car)
elif responce == 3:
if len(cars) > 0:
for car in cars:
print(car)
else:
print("В гараже нет авто!")
elif responce == 4:
car = input("Введите название авто: ")
if car in cars:
print("Такой автомобиль есть в гараже!")
else:
print("Такого автомобиля нет в гараже!")
elif responce == 5:
cars.sort()
print("Сортировка выполнена!")
else:
print("До скорых встреч!")
input()
Разберем нашу программу. В цикле мы выводим подсказку-меню. Пользователь вводит свой выбор, программа выполняет действия в зависимости от введенного номера действия.
Самостоятельно напишите программу и проверьте её работоспособность. Если будут проблемы пишите в комментариях.
Списки в Python:
Самостоятельно напишите программу и проверьте её работоспособность. Если будут проблемы пишите в комментариях.
Списки в Python: