Онлайн-курсы по Python
Выбрать другой урок из курса
Обсуждение
Теория урока

Списки в Python

В предыдущем уроке мы познакомились с основными структурами языка Python. В этом уроке мы остановимся на одной – списках. Их стоит применять, если у вас есть набор чем-то связанных элементов.

Обычно, массивы в других языках программирования состоят из элементов одного типа. Однако список Python может состоять из разнотипных элементов. Прежде разберемся, как объявляются списки в Python: они всегда заключены в квадратные скобки, а элементы отделяются запятой друг от друга.

Пример
list1 = [2, 4, 8, 16]
list2 = ["Иван", "Иванов", 20]
list3 = [list1, list2]              

Выше приведен литеральный способ создания списка. То есть мы создали и заполнили его за один раз. Второй вариант рассмотрим чуть позже, где элементы добавляются по мере необходимости. Кстати, обратите внимание на список list3, он состоит из двух других списков. Список list3 можно записать так:

Пример
list3 = [[2, 4, 8, 16], ["Иван", "Петр"]]              

Давайте рассмотрим пример, где нам необходимо вывести гласные, которые встречаются в заданном слове:

Пример
letters = ["а", "е", "и", "о", "у", "э", "ю", "я"]
word = "список – это массив"

for item in word:
    if item in letters:
        print(item)              

Сначала мы зададим массив (список) гласных букв. Для перебора всех букв нам поможет цикл for, о котором говорилось в этом уроке. Так же нам поможет оператор in, который позволяет проверить, есть ли элемент item (а это одна буква заданного слова) в списке letters и если есть, то вывести результат.

Метод append

Теперь попробуем динамически добавлять элементы в список. Например, если необходимо вывести букву только один раз. Для начала создадим пустой список:

Пример
found = []              

Кстати, чтобы узнать размер списка, нам поможет функция len().

Пример
print(len(found))              

Списки в Python обладают стандартными методами, которые можно вызвать, используя синтаксис точечной нотации. Первый метод, с которым мы познакомимся, называется append(). Он позволяет добавить элемент в конец списка.

Пример
found.append("a")              

Теперь применим полученные знания для решения задачи:

Пример
letters = ["а", "е", "и", "о", "у", "э", "ю", "я"]
word = "список – это массив"
found = []

for item in word:
    if item in letters:
        if item not in found:
            found.append(item)

for item in found:       
    print(item)             

Здесь вы можете заметить новый оператор not in, который вернет истину, если элемента item нет в списке found.

Метод remove

Часто возникает необходимость удалить элемент по значению. Например:

Пример
list1 = [4, 3, 2, 1]
list1.remove(3)              

Обратите внимание на то, что удалится цифра три, так как поиск производится по значению, а не по индексу. Но что если необходимо удалить элемент по индексу?

Метод pop

Метод pop удаляет элемент по индексу и возвращает его. Если не указывать параметры, то будет удален последний элемент:

Пример
list1 = [4, 3, 2, 1]
d = list1.pop()
print(d)              

В данном случае будет удалена и выведена в консоль цифра 1.

Метод extend

Добавлять элементы можно не только с помощью метода append. Чтобы добавить в конец списка еще один список, используйте метод extend.

Пример
list1 = [4, 3, 2, 1]
list1.extend([5, 6])

for i in list1:
    print(i)              

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

Метод insert

Метод insert похож на append, но только первым параметром указывается индекс элемента, перед которым будет вставка:

Пример
list1 = [2, 3, 4]
list1.insert(0, 1) # => [1, 2, 3, 4]              

Обращение к элементу

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

Пример
list1 = [1, 2, 3, 4]
print(list1[0])              

В этом уроке мы достаточно подробно разобрались со списками в Python. Теперь вы умеете их создавать, а так же добавлять и удалять элементы.

<
×
>
Не публикуйте свой код прямо в комментариях. Во-первых, он плохо отображается. Во-вторых, он может содержать для кого-то «спойлеры», т.е. ответы на практику. Воспользуйтесь специальными сервисами: cssdeck.com или jsfiddle.net.
Комментарии, содержащие код (пару строк не считается), будут безжалостно удаляться.