Python字典赋值问题:如何将列表元素依次填入gamma字段
解决方法
方法一:调整索引匹配
你的问题是所有gamma都取了newlist[0],只需要把gamma的索引改成和循环变量i对应即可。因为i从1开始,而列表索引从0开始,用i-1就能对应到newlist的每个元素:
N = 3 newlist = [10,25,90] config = {f"C{i}": {'inletnode': f"J{i}", 'parameters': {'test1': 0.0013, 'test2': 0.000846, 'gamma': newlist[i-1]} } for i in range(1, N + 1)} print(config)
方法二:用enumerate遍历更直观
如果不想手动计算索引,可以用enumerate遍历newlist,同时获取元素的序号和值,这样代码可读性更强:
newlist = [10,25,90] config = {f"C{idx+1}": {'inletnode': f"J{idx+1}", 'parameters': {'test1': 0.0013, 'test2': 0.000846, 'gamma': val} } for idx, val in enumerate(newlist)} print(config)
两种方法都能得到你想要的输出,第二种方法不需要依赖N变量,直接根据newlist的长度生成对应数量的字典项,灵活性更高。
内容的提问来源于stack exchange,提问作者xshovelfighter
相关产品推荐
相关产品推荐

