【发布时间】:2014-09-17 09:54:15
【问题描述】:
我有一个相当复杂的问题(或者在我看来是这样)。我有一本字典,其中包含元素的键编辑列表和该字典的键列表
numbers = {
'group1': [1, 2],
'group2': [3, 4],
'group3': [5, 6]
}
order = [ 'group1', 'group2', 'group3' ]
我想按照给定的顺序使用每组一个数字来生成组合。所以我希望得到[ 'group1', 'group2', 'group3' ] 的订单
1, 3, 5
1, 3, 6
1, 4, 5
1, 4, 6
2, 3, 5
2, 3, 6
2, 4, 5
2, 4, 6
我有一个解决方案,但它不够通用且无法扩展:
group1=order[0]
group2=order[1]
group3=order[2]
for n in numbers[group1]:
for n2 in numbers[group2]:
for n3 in numbers[group3]:
print(n, n2, n3)
有任何更智能的解决方案适用于任意数量的组吗?
【问题讨论】:
标签: python-2.7 dictionary combinations combinatorics