使用列表和单个值或列表和列表生成排列

时间:2016-01-20 13:24:48

标签: python itertools

我正在努力实现以下结果

import itertools 
i = [1, 2, 3]

以下不起作用...如何使用具有单个值的iterable创建所有组合?

allCombos = [combo for combo in itertools.product(i, True)]
# I want to yield (1, True), (2, True), (3, True)

这适用于其他情况

if includeFalse:
    allCombos = [combo for combo in itertools.product(i, [True, False])]
    # yields in (1, True), (1, False), (2, True), (2, False), (3, True), (3 False)

1 个答案:

答案 0 :(得分:1)

您可以将单个值放在列表中,然后使用:

allCombos = [combo for combo in itertools.product(i, [True])]

或者你可以只有一个简单的列表理解:

allCombos = [(x, True) for x in i]