все 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Сообщить о неточности