Тип данных список (list) в Python очень мощный инструмент программиста. Однако, чтобы получить максимальную выгоду от использования списков в Python следует научиться некоторым приемам в работе с ними.
В этой статье мы узнаем:
Как распаковать список в Python
Как пользоваться генераторами в Python
Как извлечь элементы из подсписков в Python.
Как распаковать список в Python.
Представим себе ситуацию - вам необходимо извлечь все элементы списка и присвоить каждый из них своей определенной переменной. Например, у нас есть список описывающий человека и содержащий следующие элементы:
person_data = ["John", "Smith", 23, "programmer"]
Тогда чтобы извлечь из этого списка и сохранить по-отдельности все элементы следует написать такой код:
user_name, user_surname, user_age, user_occupation = person_data
После этого мы сможем использовать отдельно каждую созданную переменную.
Обратите внимание, что количество создаваемых переменных должно соответствовать количеству элементов в списке, иначе вы получите ошибку.
Как пользоваться генераторами в 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.
Так же, часто возникает ситуация, когда необходимо извлечь элементы из подспиков списка.
Например имеем такой список:
outer = [[1,2,3], [4,5,6], [7,8,9]]
Задача создать отдельный список содержащий все элементы подсписков данного списка. Выполнить эту задачу можно при помощи все того же генератора списков:
new_list = [item for sublist in outer for item in sublist]
Таким образом получаем список со всеми элементами:
На этом на сегодня все. Удачи в освоении Python!