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

Python如何在值为字符串列表的字典中根据元素查找对应键

Python 实现根据列表元素查找字典对应键的方案

单次查询场景(低频次调用)

如果只需要偶尔查询一两次,直接遍历字典的键值对匹配即可,实现最简单:

def get_component_key(target: str, component_dict: dict) -> str | None:
    for key, item_list in component_dict.items():
        if target in item_list:
            return key
    # 无匹配时返回None,也可以根据需求抛出自定义异常
    return None

# 测试
components = {
    'skin': [
        'first',
        'second',
        'third',
    ],
    'hair': [
        'fourth',
        'fifth',
    ]
}
print(get_component_key("fourth", components)) # 输出 hair
print(get_component_key("second", components)) # 输出 skin

多次查询场景(高频次调用)

如果需要反复做查询操作,推荐提前构建反向映射字典,后续每次查询时间复杂度为O(1),性能更高:

# 预先构建反向查找索引
reverse_index = {}
for key, item_list in components.items():
    for item in item_list:
        reverse_index[item] = key

# 直接查询即可
print(reverse_index.get("fourth")) # 输出 hair
print(reverse_index.get("second")) # 输出 skin

注意事项

如果不同键对应的列表存在重复元素,上面的反向映射会保留最后一次出现的键。如果需要保留所有匹配的键,可以调整反向索引的构建逻辑:

reverse_index = {}
for key, item_list in components.items():
    for item in item_list:
        reverse_index.setdefault(item, []).append(key)

这样查询重复元素时会返回所有对应的键组成的列表。

内容的提问来源于stack exchange,提问作者Mateusz Wójt

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:27:01