Python:生成此组合的 itertools?

Posted

技术标签:

【中文标题】Python:生成此组合的 itertools?【英文标题】:Python: itertools for generating this combination? 【发布时间】:2015-10-01 05:48:23 【问题描述】:

是否有一个 itertools 函数会生成x,就像这个组合一样?

for op1 in ['+','-','*']:
    for op2 in ['+','-','*']:
        for op3 in ['+','-','*']:
            for op4 in ['+','-','*']:
                x = [op1,op2,op3,op4]

【问题讨论】:

itertools.product. -2 102k 信誉用户很难看到:p 大声笑,102k 的声誉并不能保证你不会无知! 【参考方案1】:

你可以使用itertools.product:

>>> from itertools import product
>>> list(product(['+','-','*'],repeat=4))
[('+', '+', '+', '+'), ('+', '+', '+', '-'), ('+', '+', '+', '*'), ('+', '+', '-', '+'), ('+', '+', '-', '-'), ('+', '+', '-', '*'), ('+', '+', '*', '+'), ('+', '+', '*', '-'), ('+', '+', '*', '*'), ('+', '-', '+', '+'), ('+', '-', '+', '-'), ('+', '-', '+', '*'), ('+', '-', '-', '+'), ('+', '-', '-', '-'), ('+', '-', '-', '*'), ('+', '-', '*', '+'), ('+', '-', '*', '-'), ('+', '-', '*', '*'), ('+', '*', '+', '+'), ('+', '*', '+', '-'), ('+', '*', '+', '*'), ('+', '*', '-', '+'), ('+', '*', '-', '-'), ('+', '*', '-', '*'), ('+', '*', '*', '+'), ('+', '*', '*', '-'), ('+', '*', '*', '*'), ('-', '+', '+', '+'), ('-', '+', '+', '-'), ('-', '+', '+', '*'), ('-', '+', '-', '+'), ('-', '+', '-', '-'), ('-', '+', '-', '*'), ('-', '+', '*', '+'), ('-', '+', '*', '-'), ('-', '+', '*', '*'), ('-', '-', '+', '+'), ('-', '-', '+', '-'), ('-', '-', '+', '*'), ('-', '-', '-', '+'), ('-', '-', '-', '-'), ('-', '-', '-', '*'), ('-', '-', '*', '+'), ('-', '-', '*', '-'), ('-', '-', '*', '*'), ('-', '*', '+', '+'), ('-', '*', '+', '-'), ('-', '*', '+', '*'), ('-', '*', '-', '+'), ('-', '*', '-', '-'), ('-', '*', '-', '*'), ('-', '*', '*', '+'), ('-', '*', '*', '-'), ('-', '*', '*', '*'), ('*', '+', '+', '+'), ('*', '+', '+', '-'), ('*', '+', '+', '*'), ('*', '+', '-', '+'), ('*', '+', '-', '-'), ('*', '+', '-', '*'), ('*', '+', '*', '+'), ('*', '+', '*', '-'), ('*', '+', '*', '*'), ('*', '-', '+', '+'), ('*', '-', '+', '-'), ('*', '-', '+', '*'), ('*', '-', '-', '+'), ('*', '-', '-', '-'), ('*', '-', '-', '*'), ('*', '-', '*', '+'), ('*', '-', '*', '-'), ('*', '-', '*', '*'), ('*', '*', '+', '+'), ('*', '*', '+', '-'), ('*', '*', '+', '*'), ('*', '*', '-', '+'), ('*', '*', '-', '-'), ('*', '*', '-', '*'), ('*', '*', '*', '+'), ('*', '*', '*', '-'), ('*', '*', '*', '*')]

【讨论】:

以上是关于Python:生成此组合的 itertools?的主要内容,如果未能解决你的问题,请参考以下文章

python itertools模块实现排列组合

python模块分析之itertools

对象上的 Python itertools 组合

什么是 Python itertools 的 Ruby 等价物,尤其是。组合/排列/分组?

Itertools 生成加扰组合

限制python中组合/排列的数量