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

Python如何根据字符串列表过滤键值均唯一的字典

Python 键值对子串匹配字典过滤实现

直接通过字典推导式结合子串匹配即可完成需求,无需额外依赖,兼容非字符串类型的值场景。

实现代码

thisdict = { "brand": "Ford", "model": "Mustang", "year": 1964} 
filt = ["rand", "ar"]

filtered_dict = {
    key: val
    for key, val in thisdict.items()
    # 只要键或值(转字符串后)包含任意一个过滤子串就保留
    if any(substr in str(key) or substr in str(val) for substr in filt)
}

print(filtered_dict)
# 输出结果:{'brand': 'Ford', 'year': 1964}

逻辑说明

  • 遍历原字典的每一组键值对,逐组做匹配校验
  • 用any()做短路匹配:只要当前键值对命中任意一个过滤子串,就终止当前组的后续匹配,减少不必要的计算
  • 对键、值统一做str()类型转换:兼容值为数字、布尔值等非字符串类型的场景,避免直接做子串匹配触发类型错误
  • 匹配规则完全对齐需求:键包含任意过滤子串、或值包含任意过滤子串的键值对都会被保留,无匹配的键值对被剔除

补充:如果你的字典所有键、值均为字符串类型,可以去掉str()转换步骤,减少微小的性能开销。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 04:21:13