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

Python3.8如何基于匹配id用另一字典列表更新目标字典列表的order值

Python3 按id匹配更新字典列表字段实现方案

实现思路

  • 先将y转换为id为键、order为值的映射字典,避免双层循环查询,执行效率更高
  • 遍历x的每个元素,匹配到对应id时直接更新order字段即可

完整可运行代码

# 注意:原始数据需要修正2个语法问题:字典字符串键需加英文引号、字符串边界用英文引号而非中文引号
x = [{'id':3, 'name':'abc', 'order':''} , {'id':7, 'name':'cde', 'order':''},  {'id':10, 'name':'zz', 'order':''}]
y = [{'id':3, 'order':4}, {'id':10, 'order':6}]

# 构造id-order映射
order_map = {item['id']: item['order'] for item in y}

# 遍历更新x的order字段
for item in x:
    item_id = item['id']
    if item_id in order_map:
        item['order'] = order_map[item_id]

# 输出验证结果
print(x)

运行输出

[{'id': 3, 'name': 'abc', 'order': 4}, {'id': 7, 'name': 'cde', 'order': ''}, {'id': 10, 'name': 'zz', 'order': 6}]

常见报错原因排查

如果之前运行报错,大概率是以下几个语法问题导致:

  • 字典的id、name等键没有加英文引号,被Python识别为未定义变量触发NameError
  • 字符串边界使用了中文的’而非英文的',触发SyntaxError
  • 采用双层循环匹配时写错了索引或者键名,触发KeyError或IndexError

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 03:36:02