Python:获取组合列表的最有效方法是什么?

时间:2016-07-15 20:30:11

标签: python combinations permutation itertools

我有一本字典:

diff_params = {0: [a, b], 
               1: [c, d]}

每个键都是一个setting_name,每个值都是一个特定的设置。我希望能够列出如下列表:

[[a, c], 
 [a, d],
 [b, c],
 [b, d]] 

当我有3或4或5个设置并且每个设置有多个选项时,我无法弄清楚如何干净利落。

1 个答案:

答案 0 :(得分:3)

您似乎更具体地寻找可以itertools.product()使用unpackinghttp://imgur.com/qJPlJua

from itertools import product

result = product(*diff_params.values())

如果你真的想要一个列表列表,你可能需要转换结果(如果你使用Python 2,那么周围的list是没用的,因为map()返回一个列表):

result = list(map(list, result))