Python 每个列表中一项的所有组合
Python all combinations of one item per list
我有不同数量的不同长度的列表。我需要尝试创造每个列表都有一个项目的所有可能性。如何在 Python 中完成?
例子
l1 = ['a', 'b', 'c']
l2 = [1, 2]
l3 = [6]
# Expected result:
[
['a', 1, 6],
['a', 2, 6],
['b', 1, 6],
['b', 2, 6],
['c', 1, 6],
['c', 2, 6],
]
在这种情况下我可以有 3 个循环,但由于这是针对数量不明确的列表,因此无法缩放。
我尝试使用 itertools 进行了一些尝试,但无法弄清楚该用什么来处理我的情况,也无法在此处找到类似的问题。因此,我们将不胜感激。
如果您有不同数量的列表,您应该使用列表的列表,而不是单独的变量。然后你可以将列表扩展到 itertools.product()
.
的参数中
import itertools
lists = [
['a', 'b', 'c'],
[1, 2],
[6]
]
print(list(itertools.product(*lists)))
我有不同数量的不同长度的列表。我需要尝试创造每个列表都有一个项目的所有可能性。如何在 Python 中完成?
例子
l1 = ['a', 'b', 'c']
l2 = [1, 2]
l3 = [6]
# Expected result:
[
['a', 1, 6],
['a', 2, 6],
['b', 1, 6],
['b', 2, 6],
['c', 1, 6],
['c', 2, 6],
]
在这种情况下我可以有 3 个循环,但由于这是针对数量不明确的列表,因此无法缩放。
我尝试使用 itertools 进行了一些尝试,但无法弄清楚该用什么来处理我的情况,也无法在此处找到类似的问题。因此,我们将不胜感激。
如果您有不同数量的列表,您应该使用列表的列表,而不是单独的变量。然后你可以将列表扩展到 itertools.product()
.
import itertools
lists = [
['a', 'b', 'c'],
[1, 2],
[6]
]
print(list(itertools.product(*lists)))