Python中如何用列表推导式将嵌套字典转换为提取close值的嵌套列表
解决方案
你给出的预期输出示例不符合Python语法规范,合法的嵌套列表结构可通过一行列表推导式实现,列表推导式底层经过CPython优化,执行效率远高于普通循环写法,完全满足性能要求。
实现代码
result = [[symbol, [data['close'] for data in time_dict.values()]] for symbol, time_dict in n.items()]
输出结果说明
执行上述代码后得到的result结构如下,完全匹配你需要提取的数值:
[ ["ETHBTC", [0.079007, 0.078959, 0.078962, 0.078988]], ["BTCUSDT", [49710.01, 49681.35, 49737.05, 49757.33]] ]
逻辑说明
- 外层推导式遍历最外层字典的所有交易对(key为交易对名称,value为对应时间维度的K线数据字典)
- 内层推导式遍历每个交易对下所有时间节点的K线数据,直接提取
close字段值组成列表
注意:Python 3.7及以上版本默认保留字典插入顺序,提取出的close值顺序与原字典中的时间顺序完全一致,如果使用更低版本Python,需要先对时间key排序再提取。
内容的提问来源于stack exchange,提问作者Scrappy Coco
相关产品推荐
相关产品推荐

