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

如何实现小写变量值与字典键的忽略大小写匹配?

忽略大小写匹配字典键的解决方法

问题场景

我有一个值为全小写的document_title变量,它对应TITLE_MAP字典中某一个大小写混合的键,但直接使用以下代码判断时无法生效:

if document_title in TITLE_MAP.keys():
   return True 

示例代码:

TITLE_MAP = {
    'AUS Marketing Consent': "DOCUMENT_TYPE_MARKETING_CONSENT",
    'Consent & History': "DOCUMENT_TYPE_CONSENT",
}

document_title = 'aus marketing consent'

解决方案

方法1:预生成小写键映射(推荐高频判断场景)

提前将原字典的键转换为小写,生成一个新的映射字典,后续判断和取值都是O(1)时间复杂度,效率最高:

# 预生成小写键到对应值的映射
LOWERCASE_TITLE_MAP = {key.lower(): value for key, value in TITLE_MAP.items()}

# 执行判断
if document_title in LOWERCASE_TITLE_MAP:
    return True
    # 如需获取对应类型,可直接取值:doc_type = LOWERCASE_TITLE_MAP[document_title]

方法2:遍历字典时忽略大小写比较

如果不需要频繁判断,不想额外占用内存存储新字典,可以直接遍历原字典的键进行小写匹配:

for key in TITLE_MAP:
    if key.lower() == document_title:
        return True

方法3:用any()简化存在性判断

仅需验证document_title是否存在匹配项时,可使用any()函数一行完成判断:

if any(key.lower() == document_title for key in TITLE_MAP):
    return True

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 23:45:54