python
July 31, 2024

Списки в Python

Сегодня мы подробно поговорим о, пожалуй, самых важных объектах в Python — списках. Разберём, зачем они нужны, как их использовать и какие удобные функции есть для работы с ними.

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

Список (list) - это упорядоченный набор элементов, каждый из которых имеет свой номер, или индекс, позволяющий быстро получить к нему доступ. Индексация элементов в списке, как и в строках, начинается с 0. Являясь изменяемым типом данных, содержимое списков можно изменять и после создания.

Зачем нужны списки?

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

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

Кроме того, списки предлагают обширный набор инструментов для работы с ними. Например, различные методы (append(), remove(), sort(), reverse()), поддержка индексации и срезов, ну и конечно же вложенности.

Это были объективные плюсы использования списков, но в тоже время...

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

Освоение работы со списками — это важный шаг для любого программиста, работающего с этим языком.

Как создавать списки?

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

Второй способ, это использовать функцию - list(). Она может быть использована для создания списка из других итерируемых объектов, таких как строки, кортежи или другие списки.

Пример 1: Список из строки

Пример 2: Список из кортежа

Не обращайте, внимания на то, что мы ещё не изучили кортежи. Это просто пример ;)

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

Пример 1: Создание списка с квадратами чисел

Пример 2: Список Фильтрация четных чисел

Совсем скоро мы познакомимся с циклами и условиями в Python, и этот код перестанет быть для вас чем-то страшным и непонятным:)

Доступ к элементам из списка

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

Таким образом, чтобы получить доступ к элементам списка, необходимо использовать оператор индекса []. Сам индекс должен быть целым числом и указывает на позицию элемента в списке. Доступ к элементам списка можно получить как с начала, так и с конца, используя положительные и отрицательные индексы соответственно.

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

Положительная индексация

Отрицательная индексация

В Python можно использовать отрицательные индексы для доступа к элементам списка, начиная с конца. Индекс -1 относится к последнему элементу, -2 — к предпоследнему и так далее.

Доступ к элементам вложенных списков

Этот пункт, часто вызывает затруднения у новичков. Мой совет - посоздавайте свои вложенные списки и поработайте с ними. Таким образом вы довольно хорошо преисполнитесь в понимании индексации и понятия "вложенности".

Если список содержит другие списки (вложенные списки), доступ к элементам внутренних списков осуществляется с помощью вложенной индексации.

Примеры с отрицательной индексацией во вложенных списках

Работа со списками и полезные методы

Получение размера списка Python

В Python для получения длины списка можно использовать встроенную функцию len(). Эта функция возвращает количество элементов в списке. Давайте рассмотрим несколько примеров, включая примеры с вложенными списками, и объясним их результаты.

Пример 1: Простой список

В этом примере len(simple_list) возвращает 5, так как в списке simple_list пять элементов.

Пример 2: Список со вложенными списками

В этом примере len(nested_list) возвращает 3, так как в списке nested_list три элемента, каждый из которых является вложенным списком.

Пример 3: Получение размера вложенного списка

В этом примере len(nested_list[0]) возвращает 3, так как первый элемент в nested_list является списком [1, 2, 3], который содержит три элемента.

Пример 4: Список с различными типами данных

В этом примере len(mixed_list) возвращает 5, так как в списке mixed_list пять элементов различных типов данных.

Добавление элементов в список Python

Метод 1: Использование метода append()

Элементы могут быть добавлены в список с помощью встроенного метода append(). Этот метод позволяет добавлять только один элемент за раз в конец списка.

Пример:

Метод 2: Использование метода insert()

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

Пример:

Метод 3: Использование метода extend()

Метод extend() используется для одновременного добавления нескольких элементов в конец списка. Этот метод принимает итерируемый объект (например, другой список) и добавляет все его элементы в текущий список.

Пример:

Переворачивание списка

Метод 1: Использование метода reverse()

Список можно перевернуть с помощью метода reverse(), который изменяет порядок элементов в списке на обратный.

Пример:

Метод 2: Использование функции reversed()

Функция reversed() возвращает обратный итератор, который может быть преобразован в список с помощью функции list(). (Да это звучит довольно сложно, но ничего, пока используйте наиболее понятный для вас способ)

Пример:

Метод 3: Использование среза

Да-да, используя срезы вы можете перевернуть список. Внимание, следите за руками :)

Сортировка списков. Метод sort()

Часто встречаются задачи, где необходимо вывести отсортированный список в определенном порядке. Для этого у каждого списка в Python есть специальный метод — sort(). По умолчанию он сортирует элементы от меньшего к большему.

Пример сортировки чисел по возрастанию

Пример сортировки чисел по убыванию

Для сортировки элементов от большего к меньшему можно использовать параметр reverse:

Сортировка строк

Сортировка строк выполняется на основе лексикографического порядка (то есть по алфавиту). Python сравнивает строки посимвольно, используя ASCII-значения символов.

Пример сортировки строк по возрастанию

Пример сортировки строк по убыванию

Сортировка с использованием ключа

Иногда требуется сортировка по определенному критерию. Для этого можно использовать параметр key, который принимает функцию, определяющую порядок сортировки.

Пример сортировки списка словарей по значению ключа

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

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

1. x in mylist — вернет True, если элемент x есть в списке mylist

Этот оператор проверяет, содержится ли элемент x в списке mylist .
Пример:

2. x not in mylist — вернет True, если элемент x отсутствует в mylist

Этот оператор проверяет, отсутствует ли элемент x в списке mylist.

Пример:

3. mylist1 + mylist2 — объединение двух списков

Этот оператор объединяет два списка mylist1 и mylist2 в один новый список.

Пример:

4. mylist * n, n * mylist — копирует список n раз

Этот оператор создает новый список, который является копией списка mylist, повторенного n раз.

Пример:

6. min(mylist) — наименьший элемент

Эта функция возвращает наименьший элемент в списке mylist.

Пример:

7. max(mylist) — наибольший элемент

Эта функция возвращает наибольший элемент в списке mylist.

Пример:

8. sum(mylist) — сумма чисел списка

Эта функция возвращает сумму всех чисел в списке mylist.

Пример:

Эти операторы и функции являются основными инструментами для работы со списками в Python. На самом деле, методов и функций для работы со списками, гораздо больше и полный их список с применением и объяснением примеров будет в следующей статье по этой теме. Как только она будет написана, я добавлю ссылку в эту статью для удобства изучения.

Подписывайтесь на наш телеграмм канал: ссылка на канал!