【发布时间】:2018-08-27 07:17:03
【问题描述】:
我有任意数量的变量,每个变量可以采用任意数量的有效值。例如。 a - (a1,a2,a3), b - (b1,b2), c - (c1,c2,c3,c4,c5)。现在我想要如下的字典列表
[
{a:a1,b:b1,c:c1},
{a:a1,b:b1,c:c2},
{a:a1,b:b1,c:c3},
.
.
.
{a:a3,b:b2,c:c3}
]
上述场景总共有 3*2*5 = 30 种组合。如何在 python 中创建它们。
我可以为每个变量设置三个for 循环,如下所示
result_list = list()
for a_val in [a1,a2,a3]:
for b_val in [b1,b2]:
for c_val in [c1,c2,c3,c4,c5]:
result_list.append({a:a_val,b:b_val,c:c_val})
但变量的数量也有所不同。我想应用 5 个变量而不是 3 个变量(a、b、c、d、e)等等。如何在python中有一个通用代码来实现这一点
【问题讨论】:
-
您可以使用 dict-comprehension:
a = ["a1","a2","a3"]; b = ["b1","b2"]; c = ["c1","c2","c3","c4","c5"]; {"a:{}, b:{}, c:{}".format(ai, bi, ci) for ai in a for bi in b for ci in c}。
标签: python python-3.x combinations