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

Python如何将包含字典的嵌套列表展平为单个汇总字典

问题原因

你的代码仅遍历了final_results[0](也就是嵌套列表的第一个子列表)来收集值,自然只能拿到第一个字典的对应字段数据。

解决方案

首先先把嵌套列表里的所有字典展平提取出来,再按键收集所有值转为元组即可:

final_results= [[{'lat': '29.97659',
   'lon': '-90.40897',
   'name': 'Hahnville',
   'admin1': 'Louisiana',
   'admin2': 'Saint Charles Parish',
   'cc': 'US'}],
 [{'lat': '29.97678',
   'lon': '-90.40877',
   'name': 'Hahnville',
   'admin1': 'Louisiana',
   'admin2': 'Saint Charles Parish',
   'cc': 'US'}],
 [{'lat': '29.95465',
   'lon': '-90.07507',
   'name': 'New Orleans',
   'admin1': 'Louisiana',
   'admin2': 'Orleans Parish',
   'cc': 'US'}]]

# 先展平嵌套列表,拿到所有字典(当前每个子列表只有1个字典的场景适用)
all_dicts = [sub_list[0] for sub_list in final_results]
# 初始化结果字典
res = {}
# 遍历所有键
for key in all_dicts[0].keys():
    # 收集每个字典中该键的值,转为元组
    res[key] = tuple(d[key] for d in all_dicts)

如果你的子列表中可能包含多个字典,可以替换展平逻辑为更通用的写法:

all_dicts = [d for sub_list in final_results for d in sub_list]

运行后输出的res符合预期:

{
 'lat': ('29.97659', '29.97678', '29.95465'),
 'lon': ('-90.40897', '-90.40877', '-90.07507'),
 'name': ('Hahnville', 'Hahnville', 'New Orleans'),
 'admin1': ('Louisiana', 'Louisiana', 'Louisiana'),
 'admin2': ('Saint Charles Parish', 'Saint Charles Parish', 'Orleans Parish'),
 'cc': ('US', 'US', 'US')
}

注:你给出的预期输出中lon字段第三个值存在笔误,实际应为原始数据中的-90.07507

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 03:09:03