我有一本用Python编写的集合词典
dct={'k1':{1,2,3,4},'k2':{100,200},'k3':{1000,2000,3000,4000},'k4':{25,50}}
我想找出所有可能的组合的笛卡尔乘积,比方说3个键,所以
'k1','k2','k3' >> product({1,2,3,4}, {100,200}, {1000,2000,3000,4000})
'k1','k2','k4'>> product({1,2,3,4}, {100,200}, {25,50})
etc
我在下面得到的代码可以工作,但看起来并不那么像Python 一样,我想知道是否有更好的解决方案,也许使用*来解压词典.我的解决方案是固定的3个组合,一个通用的解决方案,可以满足n个组合将是有趣的…
for x,y,z in combinations(dct.keys(),3):
for p in product(dct[x],dct[y],dct[z]):