Python Glossary English

все Python 3itertoolsфункция

itertools.product

itertools

Декартово произведение итерируемых (вложенные циклы как плоский итератор).

Синтаксис

itertools.product(*iterables, repeat=1)

product заменяет вложенные for-циклы одним плоским итератором, но перед началом полностью считывает все входы в память — бесконечный или огромный итерируемый передавать нельзя. Крайний правый аргумент меняется быстрее всех; repeat=N даёт произведение набора с самим собой N раз (product(xs, repeat=3) вместо тройного цикла).

Примеры

import itertools
print(list(itertools.product([1, 2], ['a', 'b'])))   # → [(1, 'a'), (1, 'b'), (2, 'a'), (2, 'b')]
print(list(itertools.product('ab', repeat=2)))  # → [('a', 'a'), ('a', 'b'), ('b', 'a'), ('b', 'b')]
print([''.join(p) for p in itertools.product('01', repeat=3)])  # → ['000', '001', '010', '011', '100', '101', '110', '111']
print(len(list(itertools.product(range(3), range(4)))))  # → 12
print(list(itertools.product([1, 2], [])))  # → []

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности