首页 > 解决方案 > python如何进行顺序组合

问题描述

我有个问题。我已经尝试过如下示例。

import itertools

options = ['A', 'B', 'C']

true_or_false = ['true', 'false']

result1 = [f"{option} is " for option in options]

结果如下。

print(result1)
['A is ', 'B is ', 'C is ']

我想使用“true_or_false”来产生这样的结果2。

('A is true' 'B is true' 'C is true')
('A is true' 'B is true' 'C is false')
('A is true' 'B is false' 'C is true')
('A is true' 'B is false' 'C is false')
('A is false' 'B is true' 'C is true')
('A is false' 'B is true' 'C is false')
('A is false' 'B is false' 'C is true')
('A is false' 'B is false' 'C is false')

我认为它正在使用“组合”,但它不起作用。

标签: pythoncombinationsitertools

解决方案


简单的嵌套循环可以输出你所需要的

result2 = []
true_or_false = ['true','false']
for a in true_or_false:
    for b in true_or_false:
        for c in true_or_false:
            result2.append(('A is ' + a, 'B is ' + b, 'C is ' + c))

并且result2将是一个元组列表:

[('A is true', 'B is true', 'C is true'),
 ('A is true', 'B is true', 'C is false'),
 ('A is true', 'B is false', 'C is true'),
 ('A is true', 'B is false', 'C is false'),
 ('A is false', 'B is true', 'C is true'),
 ('A is false', 'B is true', 'C is false'),
 ('A is false', 'B is false', 'C is true'),
 ('A is false', 'B is false', 'C is false')]

推荐阅读