Язык программирования Python




Списковые включения


Для более естественной записи обработки списков в Python 2 была внесена новинка: списковые включения. Фактически это специальный сокращенный синтаксис для вложенных циклов for и условий if, на самом низком уровне которых определенное выражение добавляется к списку, например:

all_pairs = [] for i in range(5): for j in range(5): if i <= j: all_pairs.append((i, j))

Все это можно записать в виде спискового включения так:

all_pairs = [(i, j) for i in range(5) for j in range(5) if i <= j]

Как легко заметить, списковые включения позволяют заменить map() и filter() на более удобные для прочтения конструкции.

В следующей таблице приведены эквивалентные выражения в разных формах:

В форме функцииВ форме спискового включения
filter(f, lst)[x for x in lst if f(x)]
filter(None, lst)[x for x in lst if x]
map(f, lst)[f(x) for x in lst]




Содержание  Назад  Вперед