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

如何在Python中用一个字典列表更新另一个字典列表的值?

用update_list更新score_list的实用方法

嘿,这个需求挺常见的,我给你分享两种靠谱的实现方式,你可以根据自己的场景来选:

方法一:先构建更新映射(高效推荐)

这种方法先把update_list转换成以id为键、score为值的字典,然后遍历score_list进行更新——字典的查找效率是O(1),数据量大的时候优势特别明显。

代码示例:

score_list = [{'id': 1, 'score': 123}, {'id': 2, 'score': 234}, {'id': 3, 'score': 345}]
update_list = [{'id': 1, 'score': 500}, {'id': 3, 'score': 300}]

# 把update_list转成id对应score的映射字典
update_map = {item['id']: item['score'] for item in update_list}

# 遍历score_list,匹配到id就更新score
for item in score_list:
    if item['id'] in update_map:
        item['score'] = update_map[item['id']]

print(score_list)
# 输出结果: [{'id': 1, 'score': 500}, {'id': 2, 'score': 234}, {'id': 3, 'score': 300}]

方法二:嵌套循环直接匹配(简单直观)

如果你的数据量很小,直接用嵌套循环匹配id更新也完全没问题,代码直白易懂,新手也能一眼看明白逻辑。

代码示例:

score_list = [{'id': 1, 'score': 123}, {'id': 2, 'score': 234}, {'id': 3, 'score': 345}]
update_list = [{'id': 1, 'score': 500}, {'id': 3, 'score': 300}]

for score_item in score_list:
    for update_item in update_list:
        if score_item['id'] == update_item['id']:
            score_item['score'] = update_item['score']
            break  # 匹配到就跳出内层循环,避免做无用检查

print(score_list)
# 输出结果和上面一致

两种方法都能达到你想要的效果,第一种更适合处理大量数据,第二种胜在简单好理解~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:37:30