【发布时间】:2016-09-15 20:32:09
【问题描述】:
import itertools
a = [[2, 3], [3, 4]]
b = [[5, 6], [7, 8], [9, 10]]
c = [[11, 12], [13, 14]]
d = [[15, 16], [17, 18]]
e = [[12,16],[13,17],[14,18],[15,19]]
q=[]
q=list(itertools.combinations((a, b, b,c, c, d,e),7)
print q
如何正确使用 itertools 中的组合功能来使用 list a 一次,b 2 次不替换,c 2 次不替换,d 和 e 各一次?
[[[2, 3],[5, 6],[7, 8],[11, 12],[13, 14],[15, 16],[12,16]],
[[2, 3],[5, 6],[7, 8],[11, 12],[13, 14],[15, 16],[13,17]],
[[2, 3],[5, 6],[7, 8],[11, 12],[13, 14],[15, 16],[14,18]],
[[2, 3],[5, 6],[7, 8],[11, 12],[13, 14],[15, 16],[15,19]],
[[2, 3],[5, 6],[7, 8],[11, 12],[13, 14],[15, 16],[12,16]],...
[[3, 4],[7, 8],[9, 10],[11, 12], [13, 14],[17, 18],[15,19]]]
【问题讨论】:
-
b的两次抽签是替换还是替换? -
我不确定我是否理解您在这里想要什么(您能否给出前几个示例输出或要确定的内容?),但如果您将
itertools.combinations包装在list中以获得体面的输入的数量,几乎可以保证你会记忆犹新。输出数量大约增长O(n!)(因子增长);您通常需要一个一个地迭代组合,而不是一次存储它们。 -
不更换,
-
你能告诉我们预期的输出吗?
标签: python list combinations itertools