我有一个方程 template = (a op b) op c 的模板,其中可用的操作 op 如下: op = ['+', '-', '/', '*']

我想要做的是使用操作 op 和参数 abc 来计算这个方程的所有可能组合。

例如

(a + b) + c
(a - b) - c
(a * b) * c
(a / b) / c
(a + c) + b
(a - c) + b
(b * a) - c
...
...
...

我查看了 itertools.combinations 但是我不太确定我是否(或如何)在这个特定的上下文中使用这个函数。

最佳答案

这做你想要的:

import itertools

symbol = ['a', 'b', 'c']
op = ['+', '-', '/', '*']

for symbols in itertools.permutations(symbol):
    for ops in itertools.product(op, repeat=2):
        print "(%s %s %s) %s %s" % (
            symbols[0], ops[0], symbols[1], ops[1], symbols[2])

关于python - 计算方程的可能组合,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44675217/

10-12 18:45