问题定义:我有一个字典,其中N > 0参数列表作为值,参数名称作为键。每个列表的长度可能不同(例如,k > 0, l > 0, m > 0...)。我的目标是生成一个统一的元组列表[(a11, a21, a31, ...), (a12, a22, a32, ...), ..., (a1k, a2l, a3m, ...)],其中每个元组都是一组长度N,并包含相应的参数值。例子:给定以下参数字典:const_params_dict= dict(a=[-1, 1], b=[-5, -4, -3, -2, -1, 1, 2, 3, 4, 5], th=[0.5])所需的输出将是:Out: [(-1, -5, 0.5), (-1, -4, 0.5), (-1, -3, 0.5), (-1, -2, 0.5), ..., (-1, 5, 0.5),
(1, -5, 0.5), (1, -4, 0.5), (1, -3, 0.5), (1, -3, 0.5) , ..., (1, 5, 0.5)]列表已知值的解决方案(即 known N):对于已知的 值,我可以想出一种方法来解决这个问题N,如下所示Code 1代码 1:[(a, b, th) for a in const_params_dict['a'] for b in const_params_dict['b'] for th in const_params_dict['th']]结果是:[(-1, -5, 0.5), (-1, -4, 0.5), (-1, -3, 0.5), (-1, -2, 0.5), (-1, -1, 0.5), (-1, 1, 0.5), (-1, 2, 0.5), (-1, 3, 0.5), (-1, 4, 0.5), (-1, 5, 0.5), (1, -5, 0.5), (1, -4, 0.5), (1, -3, 0.5), (1, -2, 0.5), (1, -1, 0.5), (1, 1, 0.5), (1, 2, 0.5), (1, 3, 0.5), (1, 4, 0.5), (1, 5, 0.5)]我的问题:N我怎样才能以最优雅和最有效的方式将此解决方案概括为任意值?
1 回答

慕莱坞森
TA贡献1810条经验 获得超4个赞
同样使用product
itertools 的功能:
from itertools import product list(product(*const_params_dict.values()))
添加回答
举报
0/150
提交
取消