Python:用于生成此组合的 itertools?
Python: itertools for generating this combination?
是否有一个 itertools 函数可以像这个组合一样生成 x
?
for op1 in ['+','-','*']:
for op2 in ['+','-','*']:
for op3 in ['+','-','*']:
for op4 in ['+','-','*']:
x = [op1,op2,op3,op4]
您可以使用 itertools.product
:
>>> from itertools import product
>>> list(product(['+','-','*'],repeat=4))
[('+', '+', '+', '+'), ('+', '+', '+', '-'), ('+', '+', '+', '*'), ('+', '+', '-', '+'), ('+', '+', '-', '-'), ('+', '+', '-', '*'), ('+', '+', '*', '+'), ('+', '+', '*', '-'), ('+', '+', '*', '*'), ('+', '-', '+', '+'), ('+', '-', '+', '-'), ('+', '-', '+', '*'), ('+', '-', '-', '+'), ('+', '-', '-', '-'), ('+', '-', '-', '*'), ('+', '-', '*', '+'), ('+', '-', '*', '-'), ('+', '-', '*', '*'), ('+', '*', '+', '+'), ('+', '*', '+', '-'), ('+', '*', '+', '*'), ('+', '*', '-', '+'), ('+', '*', '-', '-'), ('+', '*', '-', '*'), ('+', '*', '*', '+'), ('+', '*', '*', '-'), ('+', '*', '*', '*'), ('-', '+', '+', '+'), ('-', '+', '+', '-'), ('-', '+', '+', '*'), ('-', '+', '-', '+'), ('-', '+', '-', '-'), ('-', '+', '-', '*'), ('-', '+', '*', '+'), ('-', '+', '*', '-'), ('-', '+', '*', '*'), ('-', '-', '+', '+'), ('-', '-', '+', '-'), ('-', '-', '+', '*'), ('-', '-', '-', '+'), ('-', '-', '-', '-'), ('-', '-', '-', '*'), ('-', '-', '*', '+'), ('-', '-', '*', '-'), ('-', '-', '*', '*'), ('-', '*', '+', '+'), ('-', '*', '+', '-'), ('-', '*', '+', '*'), ('-', '*', '-', '+'), ('-', '*', '-', '-'), ('-', '*', '-', '*'), ('-', '*', '*', '+'), ('-', '*', '*', '-'), ('-', '*', '*', '*'), ('*', '+', '+', '+'), ('*', '+', '+', '-'), ('*', '+', '+', '*'), ('*', '+', '-', '+'), ('*', '+', '-', '-'), ('*', '+', '-', '*'), ('*', '+', '*', '+'), ('*', '+', '*', '-'), ('*', '+', '*', '*'), ('*', '-', '+', '+'), ('*', '-', '+', '-'), ('*', '-', '+', '*'), ('*', '-', '-', '+'), ('*', '-', '-', '-'), ('*', '-', '-', '*'), ('*', '-', '*', '+'), ('*', '-', '*', '-'), ('*', '-', '*', '*'), ('*', '*', '+', '+'), ('*', '*', '+', '-'), ('*', '*', '+', '*'), ('*', '*', '-', '+'), ('*', '*', '-', '-'), ('*', '*', '-', '*'), ('*', '*', '*', '+'), ('*', '*', '*', '-'), ('*', '*', '*', '*')]
是否有一个 itertools 函数可以像这个组合一样生成 x
?
for op1 in ['+','-','*']:
for op2 in ['+','-','*']:
for op3 in ['+','-','*']:
for op4 in ['+','-','*']:
x = [op1,op2,op3,op4]
您可以使用 itertools.product
:
>>> from itertools import product
>>> list(product(['+','-','*'],repeat=4))
[('+', '+', '+', '+'), ('+', '+', '+', '-'), ('+', '+', '+', '*'), ('+', '+', '-', '+'), ('+', '+', '-', '-'), ('+', '+', '-', '*'), ('+', '+', '*', '+'), ('+', '+', '*', '-'), ('+', '+', '*', '*'), ('+', '-', '+', '+'), ('+', '-', '+', '-'), ('+', '-', '+', '*'), ('+', '-', '-', '+'), ('+', '-', '-', '-'), ('+', '-', '-', '*'), ('+', '-', '*', '+'), ('+', '-', '*', '-'), ('+', '-', '*', '*'), ('+', '*', '+', '+'), ('+', '*', '+', '-'), ('+', '*', '+', '*'), ('+', '*', '-', '+'), ('+', '*', '-', '-'), ('+', '*', '-', '*'), ('+', '*', '*', '+'), ('+', '*', '*', '-'), ('+', '*', '*', '*'), ('-', '+', '+', '+'), ('-', '+', '+', '-'), ('-', '+', '+', '*'), ('-', '+', '-', '+'), ('-', '+', '-', '-'), ('-', '+', '-', '*'), ('-', '+', '*', '+'), ('-', '+', '*', '-'), ('-', '+', '*', '*'), ('-', '-', '+', '+'), ('-', '-', '+', '-'), ('-', '-', '+', '*'), ('-', '-', '-', '+'), ('-', '-', '-', '-'), ('-', '-', '-', '*'), ('-', '-', '*', '+'), ('-', '-', '*', '-'), ('-', '-', '*', '*'), ('-', '*', '+', '+'), ('-', '*', '+', '-'), ('-', '*', '+', '*'), ('-', '*', '-', '+'), ('-', '*', '-', '-'), ('-', '*', '-', '*'), ('-', '*', '*', '+'), ('-', '*', '*', '-'), ('-', '*', '*', '*'), ('*', '+', '+', '+'), ('*', '+', '+', '-'), ('*', '+', '+', '*'), ('*', '+', '-', '+'), ('*', '+', '-', '-'), ('*', '+', '-', '*'), ('*', '+', '*', '+'), ('*', '+', '*', '-'), ('*', '+', '*', '*'), ('*', '-', '+', '+'), ('*', '-', '+', '-'), ('*', '-', '+', '*'), ('*', '-', '-', '+'), ('*', '-', '-', '-'), ('*', '-', '-', '*'), ('*', '-', '*', '+'), ('*', '-', '*', '-'), ('*', '-', '*', '*'), ('*', '*', '+', '+'), ('*', '*', '+', '-'), ('*', '*', '+', '*'), ('*', '*', '-', '+'), ('*', '*', '-', '-'), ('*', '*', '-', '*'), ('*', '*', '*', '+'), ('*', '*', '*', '-'), ('*', '*', '*', '*')]