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

如何用正则模糊匹配Python字典字符串键并返回首个匹配结果?

问题原因

Python 中直接使用yax in my_dict语法做的是精确键匹配,只有当字典中存在完全等于yax的键时才会返回True,所以你的代码会进入else分支。

实现方案

你可以遍历字典的键,匹配第一个包含目标子串的键即可,Python 3.7及以上版本字典默认保留插入顺序,遍历拿到的第一个匹配结果就是你需要的首个符合条件的结果。

基础遍历写法(易读性高)

my_dict = {'dummy': 0, 'K1::foo(bar::z(x,u))': 1, 'K2::foo()': 2}
yax = 'foo'
match_value = None

for key in my_dict:
    if yax in key:
        match_value = my_dict[key]
        break

if match_value is not None:
    print(match_value)
else:
    print("Given value does not exist")

简洁写法(生成器表达式+next)

my_dict = {'dummy': 0, 'K1::foo(bar::z(x,u))': 1, 'K2::foo()': 2}
yax = 'foo'
# next第二个参数为无匹配时的默认返回值
match_value = next((my_dict[key] for key in my_dict if yax in key), None)

if match_value is not None:
    print(match_value)
else:
    print("Given value does not exist")

效果说明

  • 搜索foo时,第一个匹配的键是K1::foo(bar::z(x,u)),输出结果为1
  • 搜索bar时,同样匹配上述键,输出结果为1
    完全符合你只取第一个匹配结果的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 23:45:08