Что такое списки в Python и как с ними работать?

programming
Аудио дорожка
12701

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

Статья будет особенно полезной для тех, кто уже находится в процессе освоения Python и в том числе проходит наш курс «Основы Python с нуля до функционального проекта». Мы будем работать с примерами, поэтому рассчитываем, что у вас уже установлена среда разработки Python.

Что такое списки

Списки в Python — это упорядоченные наборы объектов, нумерация которых начинается с 0. В списке могут содержаться разные объекты — от целых чисел до строк. Кроме того, внутри списков могут храниться дополнительные списки.

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

image_2

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

image_3

Важное преимущество списков в Python — их можно менять буквально на ходу. Вы можете удалять отдельные элементы, добавлять новые, менять их местами и так далее. Главное — сохранять нумерацию, чтобы можно было обращаться к этим элементам. При этом когда вы добавляете объект, Python автоматически выделяет под него память. А когда удаляете — высвобождает ее. 

image_4

Создание списка в Python

Давайте для лучшего понимания перейдем к практической части!

Существует несколько способов создания списка в Python:

 

  • Перечисление элементов в квадратных [] скобках

 

Выглядит это следующим образом:

image_5

Здесь стоит еще раз напомнить, что нумерация в списках Python начинается с нуля. То есть, если вы используете команду print(numbers[0]), на экран будет выведена единица.

 

  • Обработка интегрируемого объекта при помощи функции list()

 

В данном случае список формируется таким образом:

image_6

Помимо прочего можно задействовать специальные генераторы списков, с помощью которых вы можете применять заданные выражения к каждому элементу в последовательности. К примеру, вы хотите создать список (list), в котором содержатся числа от 1 до 5. Это будет выглядеть вот так:

image_7

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

image_8

То есть, мы получаем объект, который состоит из чисел 1 и 2, а также вложенного списка с числами 3 и 4. Ничего сложного, правда? Главное — не забывать закрывать все квадратные скобки.

Операции над списками Python

Хранение данных в списках — это удобно. Но какая в этом практическая польза для разработчика? А польза в том, что с такими списками можно осуществлять множество самых разных операций. Наиболее популярные из них мы и рассмотрим далее.

Встроенные функции

В Python есть 4 простые встроенные функции, с помощью которых можно узнать длину списка, выполнить его сортировку, возвращать минимальное и максимальное значение. Рассмотрим эти функции на примерах!

 

  • len() — возвращает длину списка:

image_9

  • sorted() — возвращает отсортированный список:

image_10

  • min() и max() — возвращают наименьший и наибольший элемент из списка:

image_11

 

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

image_12

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

image_13

Срезы (slice) списка

Благодаря срезам вы можете получить определенное подмножество значений. Например, используя следующий код, вы можете вернуть список с элементами, начиная с 0-индекса, но исключив индекс 2 и выше:

image_14

Похожим образом можно вывести все, кроме элемента на третьей позиции:

image_15

А вот так можно вывести все, начиная с 1 и до конца:

image_16

Методы списков Python

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

 

  • Index — начинает поиск совпадений слева направо, после чего возвращает положение элемента с совпадающим значением:

image_17

 

  • Count — автоматически подсчитывает количество совпадений значения в списке. То есть, мы говорим именно о численности совпадений, а не самом значении:

image_18

  • Append — позволяет добавить указанное значение в самый конец существующего списка:

image_19

  • Sort — позволяет автоматически отсортировать список в Python. Обратите внимание, что по умолчанию осуществляется сортировка от меньшего к большему:

image_20

Однако вам не обязательно использовать дефолтный метод сортировки. Можно, например, выполнить сортировку в обратном порядке — от большего к меньшему:

image_21

  • Insert — вставляет указанный элемент перед заданным индексом. Нужно всего лишь указать, перед каким элементом он должен быть установлен:

image_22

  • Remove — удаляет первое обнаруженное вхождение указанного элемента в списке. При этом остальные вхождения не удаляются:

image_23

  • Extend — метод похож на append(), но обладает одним важным преимуществом. С его помощью можно добавлять не только элементы, но и целые списки:

image_24

  • Pop — удаляет элемент в заданном индексе и выводит удаленный элемент. При этом если вы не укажете индекс, то метод удалит последний элемент:

image_25

  • Join — позволяет преобразовать список в строку. Список Python должен состоять из строк, а разделитель прописывают в кавычках перед методом:

image_26

Главное о списках в Python

Списки — это очень удобная структура данных, позволяющая работать с итерируемыми объектами. На первый взгляд может быть не совсем понятно, какое у них практическое применение и в каких случаях их нужно использовать. Но давайте представим простой пример. Допустим, вы хотите написать скрипт, который будет автоматически проверять, является ли определенная модель автомобиля разработкой компании Tesla.

Для решения этой задачи как раз отлично и подходит работа со списками:

image_27

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

Напоследок давайте закрепим самое главное из нашей статьи:

  1. Список в Python — это массив однотипных или неоднотипных элементов, у каждого из которого есть свой номер (индекс).
  2. Нумерация элементов в списках Python начинается с 0, а не с 1.
  3. В качестве «ключей» используются индексы типа 0, 1, 2...
  4. Элементы списка можно переопределять.
  5. Можно добавлять новые элементы в существующий список или удалять их.
  6. Списки можно вкладывать в другие списки.
  7. Для списков создано множество функций, позволяющих гибко работать с элементами и создавать скрипты разной сложности.

Напоследок хотим дать вам небольшой совет: больше практики!

Чтобы запомнить все принципы работы со списками и быстрее разобраться в их логике, постарайтесь повторить все перечисленные выше примеры. Уверены, никаких особых сложностей у вас не возникнет. В дальнейшем вы сможете перейти к более сложным примерам и задачам. А впоследствии будете находить новые, порой самые неожиданные способы применения Python-списков в своей работе.