В прошлой статье мы научились перебирать несколько значений с помощью цикла for.

Например:

for number in range(1, 6):
    print(number)

Но что делать, если у нас есть набор данных, который мы хотим сохранить и использовать позже?

Например, список покупок:

хлеб
молоко
яблоки
кофе

Для этого в Python есть списки.


Создаём список

Список записывается в квадратных скобках:

shopping_list = ["хлеб", "молоко", "яблоки", "кофе"]

Теперь все четыре значения находятся в одном списке.

Мы можем вывести весь список:

print(shopping_list)

Получим:

['хлеб', 'молоко', 'яблоки', 'кофе']

Список может содержать не только строки.

Например:

numbers = [10, 20, 30, 40]

или даже значения разных типов:

items = ["Анна", 25, True]

Но на практике чаще всего элементы одного списка имеют что-то общее.


Получаем элемент по индексу

У каждого элемента списка есть свой номер - индекс.

Например:

shopping_list = ["хлеб", "молоко", "яблоки", "кофе"]

Индексы выглядят так:

        0         1         2        3
     "хлеб"   "молоко"   "яблоки"  "кофе"

Обратите внимание: нумерация начинается с 0.

Чтобы получить элемент, нужно указать его индекс в квадратных скобках:

print(shopping_list[0])

Результат:

хлеб

А:

print(shopping_list[2])

выведет:

яблоки

Можно изменить элемент

Список является изменяемым.

Например:

shopping_list = ["хлеб", "молоко", "яблоки"]

shopping_list[1] = "сыр"

print(shopping_list)

Получим:

['хлеб', 'сыр', 'яблоки']

Мы заменили второй элемент списка.


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

Для добавления нового элемента используется метод append().

shopping_list = ["хлеб", "молоко"]

shopping_list.append("кофе")

print(shopping_list)

Результат:

['хлеб', 'молоко', 'кофе']

Новый элемент добавился в конец списка.

Можно добавлять элементы несколько раз:

shopping_list.append("яблоки")
shopping_list.append("сыр")

Теперь список содержит:

['хлеб', 'молоко', 'кофе', 'яблоки', 'сыр']

Удаляем элементы

Чтобы удалить элемент по его значению, можно использовать remove().

shopping_list = ["хлеб", "молоко", "яблоки"]

shopping_list.remove("молоко")

print(shopping_list)

Получим:

['хлеб', 'яблоки']

Метод remove() ищет указанное значение и удаляет его из списка.


Перебираем список

А теперь объединим то, что уже знаем.

У нас есть список:

shopping_list = ["хлеб", "молоко", "яблоки"]

И мы уже умеем использовать for.

Поэтому можем написать:

for item in shopping_list:
    print(item)

Результат:

хлеб
молоко
яблоки

Это одна из самых распространённых операций со списками.

Мы не обязаны знать индексы элементов.

Можно просто попросить Python по очереди дать нам каждый элемент.


Список может быть пустым

Иногда нам нужно создать список, в котором пока ничего нет.

Для этого достаточно написать:

shopping_list = []

Позже можно добавить элементы:

shopping_list.append("хлеб")
shopping_list.append("молоко")

Теперь список уже содержит два элемента.

Это особенно удобно, когда мы собираем данные постепенно.


Что мы сегодня узнали

Сегодня мы познакомились со списками - первой коллекцией Python.

  • Список создаётся с помощью квадратных скобок [].
  • У каждого элемента есть индекс, начинающийся с 0.
  • Элемент можно получить по индексу.
  • Элемент можно заменить.
  • append() добавляет элемент в конец списка.
  • remove() удаляет элемент по значению.
  • Список можно перебирать с помощью for.

Попробуйте сами

Создайте список своих любимых фильмов:

movies = ["Интерстеллар", "Матрица", "Терминатор"]

Выведите:

  1. весь список;
  2. первый фильм;
  3. каждый фильм отдельно.

Затем:

  • добавьте ещё один фильм;
  • замените один из существующих;
  • удалите один фильм.

Попробуйте также создать пустой список и заполнить его с помощью append().


Что дальше?

Список позволяет хранить несколько значений и изменять их.

Но иногда нам нужна коллекция, которую нельзя случайно изменить.

Например, координаты точки или набор значений, который должен оставаться неизменным.

В следующей статье познакомимся с кортежами (tuple).