Списки

Одна переменная хранит одно значение. А если нужно хранить много — список друзей, вопросов викторины, песен в плейлисте? Заводить сто переменных глупо. Для этого есть списки — одна коробка на много значений. Сегодня научимся ими пользоваться и соберём викторину.

Робот держит список-чеклист и плейлист: много элементов в одном месте

Список — много значений в одной переменной

Список записывают в квадратных скобках, элементы через запятую. Как у строки, у элементов есть индексы с нуля: первый — spisok[0], последний — spisok[-1]. Длину (сколько элементов) даёт уже знакомая команда len.

spisok = ["кот", "пёс", "ёж"]
print(spisok[0])
print(spisok[-1])
print(len(spisok))
кот
ёж
3
  Список — много элементов по порядку, у каждого индекс:

  spisok = ["кот", "пёс", "ёж"]

  индекс:     0      1      2
  элемент:   кот    пёс    ёж

  spisok[0] = "кот"   spisok[-1] = "ёж"   len(spisok) = 3
Индексы списков — как у строк: с 0. У списка из 3 элементов индексы 0, 1, 2. Попросишь spisok[3] — будет ошибка: такого элемента нет.

Добавляем элементы: append

Список можно пополнять. Метод .append(...) добавляет новый элемент в конец. Часто список начинают пустым — [] — и наполняют по ходу программы.

spisok = ["кот", "пёс"]
spisok.append("ёж")
print(spisok)
['кот', 'пёс', 'ёж']
  spisok.append("ёж")  — добавить в конец

  было:   ["кот", "пёс"]
  стало:  ["кот", "пёс", "ёж"]
                            ^ новый элемент в конце

Перебор списка: for по элементам

Главная сила списка — пройти по всем элементам циклом for. Пишут for элемент in список: — и переменная по очереди становится каждым элементом. Проверить, есть ли что-то в списке, помогает слово in.

spisok = ["кот", "пёс", "ёж"]
for jivotnoe in spisok:
    print(jivotnoe)

print("пёс" in spisok)
кот
пёс
ёж
True
  for jivotnoe in spisok:
      print(jivotnoe)

  jivotnoe по очереди:  "кот"  -->  "пёс"  -->  "ёж"
  (цикл проходит каждый элемент по порядку)
Заметь разницу: for i in range(5) повторяет по числам, а for x in spisok идёт прямо по элементам списка — это удобнее, когда нужно обойти всё, что лежит в списке.

Упражнение: викторина и плейлист

Первая программа — викторина: два списка (вопросы и ответы), цикл идёт по ним и считает очки. Скопируй и сыграй.

voprosy = ["Столица Франции?", "Сколько будет 2+2?", "Какого цвета небо днём?"]
otvety = ["париж", "4", "голубое"]
ochki = 0
for i in range(len(voprosy)):
    otvet = input(voprosy[i] + " ").lower()
    if otvet == otvety[i]:
        print("Верно!")
        ochki = ochki + 1
    else:
        print("Неверно. Правильный ответ:", otvety[i])
print("Твой счёт:", ochki, "из", len(voprosy))
Столица Франции? париж
Верно!
Сколько будет 2+2? 4
Верно!
Какого цвета небо днём? синее
Неверно. Правильный ответ: голубое
Твой счёт: 2 из 3

Вторая — менеджер плейлиста: начинаем с пустого списка, добавляем песни через append и выводим все циклом.

pleylist = []
pleylist.append("Любимая песня")
pleylist.append("Ещё одна")
pleylist.append("И третья")

print("Мой плейлист:")
for pesnya in pleylist:
    print("-", pesnya)
print("Всего песен:", len(pleylist))
Мой плейлист:
- Любимая песня
- Ещё одна
- И третья
Всего песен: 3
  • В викторине добавь свои вопросы и ответы (по одному в каждый список — их число должно совпадать).
  • В плейлисте замени песни на свои и добавь ещё через append.
  • Сложнее: спрашивай у пользователя название песни в цикле и добавляй в плейлист, пока он не введёт «стоп».
Викторина соединила почти всё: списки, цикл, индексы, условие, счётчик и метод .lower() из урока про строки. Вот так из кирпичиков собираются настоящие программы.

Контрольный вопрос. Как правильно создать список из трёх городов?

Аgoroda = [«Москва», «Париж», «Рим»]
Бgoroda = («Москва» «Париж» «Рим»)
Вgoroda = «Москва», «Париж», «Рим» в скобках {}

Подсказка: Список — это квадратные скобки, элементы через запятую.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Что выведет программа из этого задания? Впиши слово, которое появится.

Исходный код для этого задания:

spisok = ["кот", "пёс", "ёж"]
print(spisok[0])

Подсказка: Индексы с нуля: spisok[0] — самый первый элемент списка.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Что выведет программа из этого задания? Впиши слово, которое появится.

Исходный код для этого задания:

spisok = ["кот", "пёс", "ёж"]
print(spisok[-1])

Подсказка: Индекс -1 — это последний элемент списка.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Что выведет программа из этого задания? Впиши число.

Исходный код для этого задания:

spisok = ["кот", "пёс", "ёж", "кит"]
print(len(spisok))

Подсказка: len считает количество элементов в списке.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Что выведет программа из этого задания? Впиши True или False.

Исходный код для этого задания:

spisok = ["кот", "пёс", "ёж"]
print("пёс" in spisok)

Подсказка: in проверяет, есть ли такой элемент в списке.

Онлайн-проверка ответа появится позже

Задание. Напиши код сам. В переменной spisok лежит список. Напиши команду print, которая выведет, сколько в нём элементов.

Исходный код для этого задания:

spisok = ["кот", "пёс", "ёж"]
# напиши ниже команду print с количеством элементов списка

Подсказка: Количество элементов даёт len(…). Шаблон: print(len(spisok)).

✅ Готово, если: ты ввёл(а) верный ответ, и онлайн-проверка его приняла.

Онлайн-проверка ответа появится позже

Задание. Напиши код сам. Добавь в конец списка spisok новый элемент — строку «ёж».

Исходный код для этого задания:

spisok = ["кот", "пёс"]
# напиши ниже команду, которая добавит "ёж" в конец списка

Подсказка: Добавить в конец — метод .append(…). Шаблон: spisok.append(«ёж»).

✅ Готово, если: ты ввёл(а) верный ответ, и онлайн-проверка его приняла.

Онлайн-проверка ответа появится позже

Задание. Напиши код сам. Напиши строку-заголовок цикла for, который перебирает список spisok, используя переменную jivotnoe. (Только строку с for и двоеточием.)

Исходный код для этого задания:

spisok = ["кот", "пёс", "ёж"]
# напиши ниже строку-заголовок цикла по списку (переменная jivotnoe)
    print(jivotnoe)

Подсказка: Шаблон: for переменная in список:. Не забудь двоеточие.

✅ Готово, если: ты ввёл(а) верный ответ, и онлайн-проверка его приняла.

Онлайн-проверка ответа появится позже

Задание. Напиши код сам. Напиши команду print, которая выведет ПЕРВЫЙ элемент списка spisok.

Исходный код для этого задания:

spisok = ["кот", "пёс", "ёж"]
# напиши ниже команду print с первым элементом списка

Подсказка: Первый элемент — по индексу 0. Шаблон: print(spisok[0]).

✅ Готово, если: ты ввёл(а) верный ответ, и онлайн-проверка его приняла.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Программа из этого задания падает с ошибкой на последней строке. Почему?

Исходный код для этого задания:

spisok = ["кот", "пёс", "ёж"]
print(spisok[3])
АВ списке 3 элемента с индексами 0, 1, 2 — элемента с индексом 3 нет
БСписок нельзя выводить через print
ВНужно писать spisok(3), а не spisok[3]

Подсказка: Сколько элементов в списке и какие у них индексы? Индекс 3 — это уже четвёртый.

Онлайн-проверка ответа появится позже

Что дальше

Теперь ты умеешь хранить много данных в списке, добавлять, перебирать и искать в нём — и собрал викторину из кирпичиков всех прошлых уроков. В следующем разделе наведём порядок в коде: научимся заворачивать его в свои функции и соберём мини-РПГ.

Назад  ·  ↑ В начало урока  ·  ⌂ В начало курса  ·  Вперёд →

Школа Виктора Комлева