You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pythonic方法计算嵌套字典中value_held_graph各索引均值

682.6094632572457
]},
'winner_num_1': {'cash_held': 2307.4282142925185,
'value_held_graph': [655.0,
643.9625087246983,
714.9614460254422,
716.9587778340948,
...
713.7097698975869
]},
'winner_num_N': {'cash_held': 2307.4282142925185,
'value_held_graph': [655.0,
654.5754236503379,
659.630701080459,
664.9212169741535,
...
654.4366560963232
]}
}

该字典包含N个以`winner_num_`为前缀的键,每个键对应的值中包含`value_held_graph`列表。需要用Pythonic的方法,计算所有`value_held_graph`列表中相同索引位置元素的平均值,最终得到类似如下的结果:
```python
value_held_graph_mean = [655.0, 651.9079605, 680.903074, 685.1103153, ..., 683.5852964]

解决方案

原生Python实现(无第三方依赖)

用列表推导式结合zip()函数即可高效完成:

# 提取所有目标列表
all_graphs = [item['value_held_graph'] for item in nested_dict.values()]
# 按索引位置计算平均值
value_held_graph_mean = [sum(index_values) / len(index_values) for index_values in zip(*all_graphs)]
  • [item['value_held_graph'] for item in nested_dict.values()]:从字典中批量提取所有value_held_graph列表,生成嵌套列表。
  • zip(*all_graphs):通过解包操作,把所有列表中相同索引的元素打包成元组,比如第一个元组包含所有列表的第0个元素,第二个元组包含所有列表的第1个元素。
  • 遍历每个元组,求和后除以元组长度(即参与计算的列表数量),得到对应索引的平均值。

基于numpy的高效实现(适合大数据量)

如果处理的列表长度长、数量多,用numpy的向量化运算速度更快:

import numpy as np

# 转换为numpy数组
graph_array = np.array([item['value_held_graph'] for item in nested_dict.values()])
# 按列计算平均值并转回Python列表
value_held_graph_mean = graph_array.mean(axis=0).tolist()
  • axis=0参数指定按列(即相同索引方向)计算平均值,最后用.tolist()将numpy数组转回普通Python列表。

内容的提问来源于stack exchange,提问作者billv1179

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 18:48:18