为了账号安全,请及时绑定邮箱和手机立即绑定

列表字典中的所有组合

列表字典中的所有组合

翻翻过去那场雪 2023-06-20 16:20:35
问题定义:我有一个字典,其中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个赞

同样使用productitertools 的功能:

from itertools import product
list(product(*const_params_dict.values()))


查看完整回答
反对 回复 2023-06-20
  • 1 回答
  • 0 关注
  • 85 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信