【发布时间】:2019-08-26 16:10:44
【问题描述】:
假设我有三个列表:
list1 --> [a, b, c, d, e, f, g, h]
list2 --> [i, j, k]
list3 --> [l, m, n, o, p]
我希望生成所有组合,其中我从 list1 中获取五个元素,从 list2 中获取两个元素,从 list3 中获取三个元素。
例如。
a, b, c, d, e, i, j, l, m, n
a, b, c, d, e, i, j, l, m, o
etc.
我尝试使用 itertools.combinations。
l1_combinations = itertools.combinations(list1, 5)
l2_combinations = itertools.combinations(list2, 2)
l3_combinations = itertools.combinations(list3, 3)
for l1_iterator in list(l1_combinations):
for l2_iterator in list(l2_combinations): #added a missing )
for l3_iterator in list(l3_combinations):
sample = l1_iterator + l2_iterator + l3_iterator
print(sample)
但我只在 list3 上进行迭代得到输出。在所有输出中,只有 list1 中的前五个元素和 list2 中的前两个元素存在。不存在与这两个列表中其他元素的组合。
有人可以在这里帮助我并解释我到底错过了什么吗?
【问题讨论】:
-
好吧,我敢肯定
for l2_iterator in list(l2_combinations:中缺少的)没有帮助...
标签: python