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

Python中无嵌套循环按相同键合并两个字典列表的最优方案

合并两个字典列表的高效方案

你可以通过字典推导式先将两个列表转换为以symbol为键的映射字典,再快速合并对应键的字典,最后转回列表形式。这种方法时间复杂度为O(n)(n为列表元素个数),比嵌套循环更高效,也避免了冗余的显式循环写法。

代码实现

first_list = [
    {"symbol": "BTC", "price": 22809},
    {"symbol": "ETH", "price": 1626}
]

second_list = [
    {"symbol": "BTC", "volume": 22809333},
    {"symbol": "ETH", "volume": 19809333}
]

# 将列表转成以symbol为键的映射字典
first_map = {item["symbol"]: item for item in first_list}
second_map = {item["symbol"]: item for item in second_list}

# 合并字典并生成最终列表
final_list = [{**first_map[sym], **second_map[sym]} for sym in first_map]

print(final_list)

输出结果

[
    {"symbol": "BTC", "price": 22809, "volume": 22809333},
    {"symbol": "ETH", "price": 1626, "volume": 19809333}
]

关键说明

  • 字典推导式能快速把列表转换成键值对结构,让后续通过symbol直接定位字典的操作变成O(1)时间复杂度。
  • {**dict1, **dict2}是Python合并字典的简洁写法,会把第二个字典的键值对合并到第一个字典中(这里symbol键值完全一致,不会出现覆盖问题)。
  • 最后用列表推导式遍历键生成结果,整个过程没有嵌套循环,执行效率远高于嵌套遍历的方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 19:15:33