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

В этой статье мы узнаем:

Как распаковать список в Python

Как пользоваться генераторами в Python

Как извлечь элементы из подсписков в Python.

Как распаковать список в Python.

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

person_data = ["John", "Smith", 23, "programmer"]

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

user_name, user_surname, user_age, user_occupation = person_data

 После этого мы сможем использовать отдельно каждую созданную переменную.

python list unpack, распаковка списка в Python

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

Как пользоваться генераторами в Python.

Генераторами списков в Python называются однострочные конструкции, которые позволяют создавать новые списки.

Синтаксис генераторов списков такой:

# самый простой генератор
new_list = [x for x in range(10)]

В итоге new_list будет содержать числа от 0 до 9. Понятно, что для того чтобы создать такой список незачем пользоваться генератором. Достаточно просто воспользоваться функцией range()

# пример посложнее
word = "hello"
new_list = [x for x in word]

Теперь new_list будет выглядеть так:

['h','e','l','l','o']

Так же в генераторы списков можно вставлять конструкцию if:

# Создаем список из чисел кратных трем
new_list = [num for num in range(30) if num % 3 == 0]

В итоге получим:

[0, 3, 6, 9, 12, 15, 18, 21, 24, 27]

Наконец, в генераторе можно использовать несколько списков и переменных:

# создание колоды карт при помощи генератора списков

# масти
suits = "HDCS"
# ранги
ranks = "23456789TJQKA"

# генерируем колоду
deck = [r+s for r in ranks for s in suits]

 Получим следующий результат:

генераторы списков в python, python list generator

Представьте, сколько времени мы сэкономили, написав всего одну строчку вместо нескольких циклов.

Как извлечь элементы из подсписков в Python.

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

Например имеем такой список:

outer = [[1,2,3], [4,5,6], [7,8,9]]

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

new_list = [item for sublist in outer for item in sublist]

 Таким образом получаем список со всеми элементами:

извлечение подсписков в Python, python extract sublists

На этом на сегодня все. Удачи в освоении Python!