Списки в Python

Списки в Python позволяют нам хранить данные с разным форматом, и обращаться к этим данным, когда нам это необходимо.

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

Введение в списки

Что такое списки, и как они выглядят в Python?

Начнем с того, что список в программировании называется “List”. List означает “список” по-английски. Очевидно, правда?

Ну так вот, списки хранят данные (значения) с разным форматом, например строки, числа, и т.д.

Каждое такое значение в списке имеет свой порядковый номер. Этот номер называется индексом.

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

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

счет = ["один", "два", "3", "четыре", "пять"]

А теперь давайте запишем этот список в наш компилятор, и выведем его на экран с помощью функции print.

счет = ["один", "два", "3", "четыре", "пять"]
print(счет)
Код.py

Что мы можем узнать про списки в Python из этого примера?

Во-первых, в начале и конце списка должны стоять квадратные скобки “[ ]”;

Во-вторых, значения в списке разделяются запятой;

В-третьих, значения в списке имеют разный формат. Тут мы видим и строки и числа;

Индекс списка в Python

Давайте разберемся в том, что такое индекс списка в Python.

Как Вы уже слышали, у каждого значения в списке есть свой индекс. И программа использует его, чтобы понять о каком именно значении из списка идет речь.

Давайте посмотрим как работает присвоение индекса значениям списка.

Индекс-списка-Python

Мы взяли список из прошлого примера, и присвоили каждому из пяти значений списка свой индекс.

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

Положительный индекс начинает отсчет с нуля, и идет слева направо.

Отрицательный индекс начинает отсчет с -1, и идет справа налево.

Отрицательный индекс всегда содержит отрицательное число. То есть число с минусом.

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

Как извлечь значение из списка

Иногда, создавая какую нибудь программу, нам нужно создать список данных (значений), чтобы затем при необходимости извлечь значение из списка, то есть данные, которые нам нужны.

Для этого мы просто сообщаем программе индекс нужного значения, и она возвращает нам это значение из списка.

Точно так же, как в ресторане фаст-фуда, Вы даете работнику номер Вашего заказа, и работник отдает вам Ваш бургер.

Ничего сложного, правда?

А теперь, давайте сообщим программе индекс значения, и посмотрим, что она нам вернет.

Вот, как мы это сделаем:

счет = ["один", "два", "3", "четыре", "пять"]
print(счет[0])

Запишите этот код в наш компилятор, и запустите его.

Код.py

А теперь давайте разбираться.

В этом коде, на второй строчке мы передали индекс нужного нам значения в функцию print.

Для этого в скобках функции мы прописали имя списка, затем открыли квадратные скобки, указали индекс, закрыли квадратные скобки, и закрыли скобку функции.

Как Вы видите, программа вернула нам первое значение “один”.

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

Значение “один” в нашем списке соответствует нулю. Вот вам снова иллюстрация для наглядности:

Индекс-списка-Python

Поэтому программа и вернула нам “один”.

А как нам вернуть значение “четыре”? Измените наш код так, чтобы программа вернула нам это значение.

Справились с задачей? Отлично!

Теперь давайте посмотрим, как нам вернуть более одного значения из списка. 

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

счет = ["один", "два", "3", "четыре", "пять"]
print(счет[0], счет[2])

Этот код возвращает нам первое значение – строку “один”, и третье значение – целое число “3”.

Код.py

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

Объединение значений списка

Как выполнить объединение значений списка? Помните, как мы объединяли строки знаком + ?

Мы можем выполнить объединение значений списка таким же способом. Давайте это сделаем:

счет = ["один", "два", "3", "четыре", "пять"]
print(счет[0] + ", " + счет[2])

Смотрите. Здесь мы склеили не только два значения списка. Мы еще и поместили дополнительную строку в виде знака запятой между этими значениями.

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

счет = ["один", "два", "3", "четыре", "пять"]
print("Счет: " + счет[0] + ", " + счет[2])

Запишите эту программу в наш компилятор и запустите ее. Посмотрите, как список преобразился.

Код.py

А затем поэкспериментируйте с ним. Попробуйте склеить что-нибудь еще, и добавьте в список новые значения.

Функций списка в Python

Давайте посмотрим, что такое функции списка в Python, и для чего они нужны?

Со списком можно работать по-разному. Можно не только извлекать из него значения, но и, например, считать количество значений в списке.

Для этого программисты используют различные функции списка.

Функций списка довольно много. Давайте познакомимся с некоторыми из них.

Функция len в Python

Что такое Функция len в Python, и для чего она нужна?

len() – это сокращенное название от слова length, что переводится с английского как “длина”.

И делает она именно то, чем она и названа, возвращает нам длину списка.

Это удобно, если нам нужно подсчитать количество значений в списке. То есть, узнать его длину.

Мы уже знаем, что длина нашего списка – 5 значений. Давайте это проверим при помощи функции len(). Вот, как это делается:

счет = ["один", "два", "3", "четыре", "пять"]
print(len(счет))

Запишите эту программу в компилятор, и запустите ее. У Вас тоже получилось число 5?

Код.py

А теперь все по порядку:

В этом коде, на второй строчке, мы поместили название функции len в скобки другой функции (print).

Затем открыли скобки функции len, и поместили туда имя списка.

Затем закрыли скобки функции len, и закрыли скобки функции print.

Вот мы и разобрались с тем, как работает функция len в Python.

Функция append в Python

Давайте теперь узнаем о том, что такое функция append в Python, и для чего она нужна?

append() переводится с английского как “добавлять в конец”.

И это именно то, что эта функция и делает: она добавляет значения в конец нашего списка.

Давайте теперь что-нибудь добавим в наш список:

счет = ["один", "два", "3", "четыре", "пять"]
счет.append("шесть")
print(счет)
Код.py

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

Затем открыли скобки функции, и вставили туда шестое значение – строку “шесть”.

После чего закрыли скобки. Спустились на строчку ниже, и прописали функцию print, указав в скобках функции имя нашего списка.

Готово! Теперь у нас целых шесть значений в списке! Вот, как работает функция append в Python.

Пожалуйста, запишите этот код в компилятор, и запустите его. А затем добавьте в наш список еще несколько значений, используя функцию append.

Сделали? Получилось? Отлично! Идем дальше.

Объединение списков в Python

А теперь мы научимся выполнять объединение списков в Python.

Помните, мы говорили о том, что в списках можно хранить любые типы данных?

Это действительно так. В списках мы можем хранить не только строки и числа, но и другие списки!

Давайте создадим два списка. Один с героями Marvel, другой с героями DC comics.

Затем создадим третий список, который будет объединять в себе оба списка. Вперед!

marvel = ["Iron Man", "Thor", "Captain America", "Hulk"]
DC = ["Superman", "Batman", "Wonder Woman", "Aquaman"]
герои = [marvel, DC]
print(герои)

Запишите этот код в компилятор, и запустите его. Посмотрите, что получилось.

Код.py

А теперь давайте пойдем еще дальше. Извлечем героя “Batman” из третьего списка!

Вот, как это можно сделать:

marvel = ["Iron Man", "Thor", "Captain America", "Hulk"]
DC = ["Superman", "Batman", "Wonder Woman", "Aquaman"]
герои = [marvel, DC]
print(герои[1] [1])
Код.py

Давайте разберем этот пример в деталях:

Индекс списка marvel = 0, индекс списка DC = 1.

Индекс значения “Batman” в списке DC тоже равен 1. Потому что он второй в списке. Помните о том, что индекс начинается с нуля?

А, значит, чтобы извлечь нашего Бэтмена из списка DC, нам потребовалось дважды указать [1]. Один для списка (DC) и еще один для нужного значения в списке (Batman).

Вот, как работает объединение списков в Python.

Запишите этот код в наш компилятор, и запустите его.

А затем поиграйте с ним. Добавляйте других героев. Создавайте другие списки, и объединяйте их. Программирование – это супер сила. Тренируйте ее!

Кортежи в Python

Со списками мы разобрались. Пора узнать о том, что такое кортежи в Python.

В английском языке кортеж называется Tuple (тюпл).

Кортежи очень похожи на списки. Но имеют несколько отличий:

Кортеж весит меньше, чем список

Кортеж будет весить меньше, чем список с тем же количеством данных.

Это особенно полезно в том случае, когда речь идет о программах с большим объемом данных, которые нужно упорядочено хранить.

Чем меньше весит приложение, тем быстрее (скорее всего) оно будет работать. Тем быстрее Вы его скачаете. Тем меньше интернет-трафика Вы потратите на его скачивание. И тем меньше памяти это приложение займет на Вашем компьютере или телефоне.

Программа обрабатывает кортеж быстрее, чем список

Опять же, когда речь идет о большом объеме упорядоченных данных.

Программа быстрее найдет нужное Вам значение в кортеже, чем в списке. Даже если они содержат одинаковое количество данных.

Пользователям Ваших будущих программ и видеоигр вряд ли понравится ждать, пока Ваша программа или видеоигра найдет нужную информацию, или отреагирует на их команду. Не так ли?

Кортеж является неизменным типом данных

Помните, как мы меняли список, используя функцию append? Таким образом мы меняли оригинал списка.

С кортежем такой фокус не пройдет. Если мы внесем изменение в кортеж, то мы лишь изменим его копию, но не оригинал.

Таким образом, если к созданному списку программа имеет доступ для чтения и изменения, то, к кортежу программа имеет доступ только для чтения.

Такое свойство кортежа не так уж и плохо. Ведь оно защищает кортеж от случайных изменений.

Кортеж отличается от списка синтаксисом

Вместо квадратных скобок [ ] как у списков, кортежи используют круглые скобки ()

На этом, пожалуй, все из основных отличий.

Теперь, когда мы поняли чем отличаются кортежи от списков, давайте запишем какие нибудь-данные в кортеж!

Для этого мы просто возьмем один из наших предыдущих списков, и превратим его в кортеж:

marvel = ("Iron Man", "Thor", "Captain America", "Hulk")
print(marvel)

Пожалуйста, запишите эту программу в компилятор, и запустите ее.

Код.py

Как Вы видите, внешне кортежи похожи на списки. За исключением того, что они быстрее, легче, неизменны, и имеют круглые скобки вместо квадратных.

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

Как превратить кортеж в список

Как превратить кортеж в список?

Хоть мы и “превратили” список в кортеж всего лишь изменив квадратные скобки на круглые, программисты делают это по другому.

И список, и кортеж – оба являются типами данных. И для того, чтобы изменить тип данных кортеж, на тип данных список, программисты используют функцию списка.

Эта функция называется list.

Мы уже говорили о функциях списка выше, и применяли некоторые из них.

Давайте теперь применим и функцию list. Она и поможет нам превратить кортеж в список.

Как мы уже знаем, list переводится с английского как “список”. И это именно то, что и делает эта функция. Превращает наш кортеж в список.

Теперь к работе:

marvel = ("Iron Man", "Thor", "Captain America", "Hulk")
список = list(marvel)
print(список)

Сначала мы создали кортеж, и сохранили его в переменной “marvel”.

Затем мы превратили кортеж в список, поместив название “marvel” в круглые скобки функции list(). И сохранили новый список в переменной “список”.

Затем вывели содержание списка на экран при помощи функции print()

Запишите эту программу в компилятор, и запустите ее. Проверяйте результат.

Код.py

Тот факт, что значения, которые она вывела, находятся в квадратных скобках, говорит о том, что это список.

Ну как? Правда, не сложно превращать кортежи в списки, используя Python?

Как превратить список в кортеж

Итак, как нам теперь преобразовать список в кортеж? Спойлер: точно так же, как мы преобразовали кортеж в список, но на этот раз с помощью функции tuple().

Вот, как мы это сделаем:

marvel = ["Iron Man", "Thor", "Captain America", "Hulk"]
кортеж = tuple(marvel)
print(кортеж)

Давайте рассмотрим этот пример поподробнее.

На этот раз мы создали список, и сохранили его в переменной “marvel”.

Затем мы превратили список в кортеж, поместив название “marvel” в круглые скобки функции tuple(). И сохранили новый кортеж в переменной “кортеж”.

Затем, мы вывели содержание кортежа на экран при помощи функции print()

Запишите эту программу в компилятор, и проверьте результат. Вы видите круглые скобки на экране? Это означает, что мы успешно превратили список в кортеж.

Код.py

Как Вы поняли, превращать кортеж в список также легко, как и превращать список в кортеж.

А теперь создайте пару своих примеров с кодом, который превращает списки в кортежи, и наоборот. Потренируйтесь.

Списки в Python, итоги

В восьмой части Вы сделали следующее:

  1. Узнали о списках и индексах в Python;
  2. Научились извлекать значения из списка;
  3. Научились объединять списки и значения списков;
  4. Узнали о функциях списков, таких как len и append;
  5. Узнали о кортежах;
  6. Научились преобразовывать кортеж в список, и наоборот.

Урок про списки в Python получился довольно объемным! Но, вы все равно его прошли! Поздравляю Вас!

Обещаю, что следующий урок посвященный словарям в Python будет короче. Давайте приступим к нему!


Вам понравится:

Python Online – онлайн компилятор, с которым вы можете писать, запускать и проверять свой код без установки программ.

Python Online

Интерактивный класс будущего

Введение С развитием цифровых технологий дистанционное образование стало ключевой составляющей современной образовательной системы. Однако существующие платформы сталкиваются с рядом вызовов:…

Начинаем Программировать на Python

Программировать на Python легко! Давайте начнем и сразу напишем нашу первую строчку кода на Python! Любая, даже самая продвинутая программа…