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

如何通过值找出两个字典中额外存在的键?

找出old_ids中值不存在于new_ids的对应键

给定两个字典:

new_ids = {10722774: 5537170, 10722775: 5537171, 10722776: 5537172, 10722777: 5537173, 10722778: 5537174, 10722779: 5537175, 10722780: 5537176, 10722781: 5537177, 10722782: 5537178}

old_ids = {10722773: 5537179, 10722764: 5537170, 10722765: 5537171, 10722766: 5537172, 10722767: 5537173, 10722768: 5537174, 10722769: 5537175, 10722770: 5537176, 10722771: 5537177, 10722772: 5537178}

需要筛选出old_ids中值未出现在new_ids值集合里的键,以下是两种实现方式:

方法一:集合查询(高效推荐)

先将new_ids的所有值转为集合(集合的成员查询时间复杂度为O(1),远快于直接遍历字典值),再遍历old_ids筛选目标键:

# 提取new_ids的所有值并转为集合
new_values = set(new_ids.values())

# 筛选符合条件的键
target_keys = [key for key, val in old_ids.items() if val not in new_values]

print(target_keys)  # 输出: [10722773]

方法二:直接遍历判断(适合小数据量)

如果数据规模很小,也可以直接用字典的values()方法进行判断,不过这种方式每次查询都要遍历new_ids的所有值,效率较低:

target_keys = [key for key, val in old_ids.items() if val not in new_ids.values()]

print(target_keys)  # 输出: [10722773]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 23:55:12