чисел, расположенных в диапазоне от 1 до 5 (помните, что выражение number % 2
имеет значение True для четных чисел и False для нечетных):
>>> a_list = [number for number in range(1,6) if number % 2 == 1]
>>> a_list
[1, 3, 5]
Теперь включение выглядит чуть более компактно, чем его традиционный
аналог:
>>> a_list = []
>>> for number in range(1,6):
... if number % 2 == 1:
... a_list.append(number)
...
>>> a_list
[1, 3, 5]
Включения
115
Наконец, точно так же, как и в случае вложенных циклов, можно написать более
чем один набор операторов for ... в соответствующем выделении. Чтобы проде-
монстрировать это, сначала создадим старый добрый вложенный цикл и выведем
на экран результат:
>>> rows = range(1,4)
>>> cols = range(1,3)
>>> for row in rows:
... for col in cols:
... print(row, col)
...
1 1
1 2
2 1
2 2
3 1
3 2
Теперь воспользуемся включением и присвоим его переменной cells, создавая
тем самым список кортежей (row, col):
>>> rows = range(1,4)
>>> cols = range(1,3)
>>> cells = [(row, col) for row in rows for col in cols]
>>> for cell in cells:
... print(cell)
...
(1, 1)
(1, 2)
(2, 1)
(2, 2)
(3, 1)
(3, 2)
Кстати, вы можете воспользоваться распаковкой кортежа, чтобы выдернуть
значения row и col из каждого кортежа по мере итерирования по списку cells:
>>> for row, col in cells: