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

如何根据值与列表筛选字典并生成匹配键值对的新字典

搞定这个字典匹配问题很简单!

嘿,我明白你要做的事——从dict1里挑出那些值在list1里的键值对,拼成新字典dict2对吧?给你几个实用的方法:

首选:一行搞定的字典推导式

Python的字典推导式就是干这个的,简洁又高效:

dict1 = {'F0': (117, 118), 'F1': (227, 118), 'F2': (337, 118), 'F3': (447, 118), 'F4': (557, 118)}
list1 = [(117, 118), (447, 228), (227, 448), (557, 558),(557, 118)]

dict2 = {k: v for k, v in dict1.items() if v in list1}
print(dict2)  # 输出正好是你要的: {'F0': (117, 118), 'F4': (557, 118)}

更直观的循环写法

要是你觉得推导式有点抽象,用普通循环也一样能实现,步骤更清晰:

dict2 = {}
# 遍历原字典的每一组键值对
for key, value in dict1.items():
    # 检查当前值是否在目标列表里
    if value in list1:
        # 符合条件就加到新字典里
        dict2[key] = value

小优化:提速小技巧

如果你的list1特别长,建议先把它转成集合——集合的成员查找速度比列表快太多了,处理大数据量的时候能明显感觉到差异:

# 先转集合
value_set = set(list1)
dict2 = {k: v for k, v in dict1.items() if v in value_set}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:55:54