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

如何实现字符串列表与字典键的精准前缀匹配?

解决方案

核心逻辑是优先匹配最长的前缀键——更长的键是短键的扩展,先检查长键能避免短键误匹配长键开头的字符串。

步骤1:预处理字典键

将lookup的键按长度从长到短排序,确保匹配时长键先被检查:

lookup = {"text_text": 1, "text_text_num": 1}
# 按键的长度降序排序
sorted_keys = sorted(lookup.keys(), key=lambda x: -len(x))

步骤2:编写匹配函数

遍历排序后的键,检查字符串是否以当前键为前缀,找到第一个匹配的键就返回对应值:

def get_match_result(s):
    for key in sorted_keys:
        if s.startswith(key):
            return lookup[key]
    return None  # 无匹配时返回None

步骤3:测试匹配效果

对目标字符串列表逐一匹配:

my_strings = ["text_text_part1", "text_text_part2", "text_text_another_part3", "text_text_num_something_part3"]

for string in my_strings:
    result = get_match_result(string)
    print(f"字符串「{string}」匹配结果:{result}")

效果说明

  • 前三个字符串不以text_text_num开头,因此会匹配到短键text_text,返回值1
  • 第四个字符串以text_text_num开头,由于长键优先被检查,直接匹配该键,返回值1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 21:30:00