Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python如何进行顺序组合_Python_Combinations_Itertools - Fatal编程技术网

python如何进行顺序组合

python如何进行顺序组合,python,combinations,itertools,Python,Combinations,Itertools,我有个问题。 我像下面的例子一样尝试过 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或false生成这样的结果2 ('A is true' 'B is true' 'C

我有个问题。 我像下面的例子一样尝试过

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或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')

我认为它使用的是组合,但不起作用。

简单的嵌套循环可以输出您需要的内容

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))
结果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')]

简单的嵌套循环可以输出您需要的内容

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))
结果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')]
可以与repeat参数一起使用,并压缩:

>>>[tupleopt+'是'+val表示选项,在zipoptions中是val,值 …对于itertools.producttrue\u或\u false中的值,请重复=lenoptions] [“A是真的”,“B是真的”,“C是真的”, ‘A为真’、‘B为真’、‘C为假’, ‘A为真’、‘B为假’、‘C为真’, ‘A为真’、‘B为假’、‘C为假’, “A为假”、“B为真”、“C为真”, ‘A为假’、‘B为真’、‘C为假’, ‘A为假’、‘B为假’、‘C为真’, “A为假”、“B为假”、“C为假”] 可以与repeat参数一起使用,并压缩:

>>>[tupleopt+'是'+val表示选项,在zipoptions中是val,值 …对于itertools.producttrue\u或\u false中的值,请重复=lenoptions] [“A是真的”,“B是真的”,“C是真的”, ‘A为真’、‘B为真’、‘C为假’, ‘A为真’、‘B为假’、‘C为真’, ‘A为真’、‘B为假’、‘C为假’, “A为假”、“B为真”、“C为真”, ‘A为假’、‘B为真’、‘C为假’, ‘A为假’、‘B为假’、‘C为真’, “A为假”、“B为假”、“C为假”]
如果你想找一些简洁的东西

import pprint

options = ['A', 'B', 'C']
true_or_false = ['true', 'false']

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

pprint.pprint(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')]

如果你想找一些简洁的东西

import pprint

options = ['A', 'B', 'C']
true_or_false = ['true', 'false']

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

pprint.pprint(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')]

如果我理解得很好,您可以通过嵌套循环简单地解决这个问题。见下面我的答案。让我知道这是否有帮助。你的问题与之前的问题完全相同。检查我对上一个问题的回答,并将其应用于回答你的问题@OlvinRoght我知道这与我之前的问题类似。我之所以徘徊是因为这是我第一次学习程序语言。如果我理解得很好,你可以简单地用嵌套循环来解决这个问题。见下面我的答案。让我知道这是否有帮助。你的问题与之前的问题完全相同。检查我对上一个问题的回答,并将其应用于回答你的问题@OlvinRoght我知道这与我之前的问题类似。我之所以流浪是因为这是我第一次学习程序语言。谢谢你教我另一种我没有想到的方法@我感谢你教了我另一种我没想到的方法@飘浮的呼噜呼噜呼噜呼噜呼噜呼噜呼噜呼噜呼噜呼噜呼噜呼噜呼噜呼噜呼噜呼噜呼噜呼噜呼噜呼噜呼噜呼噜呼噜呼。谢谢@Kaya3就像我想象的那样,我并没有想到要拉拉链和重复。谢谢@这和我想的有点不同,但是谢谢。这和我想的有点不同,但是谢谢。