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

Python中如何按自定义字典将西班牙文数字词组替换为对应阿拉伯数字

西班牙文数字词组替换阿拉伯数字实现方案

问题根源

原有代码将输入字符串按空格拆分为单个单词后逐个匹配字典,但字典的key都是多单词组成的完整数字词组,单个单词无法命中对应key,所以无法完成预期替换。另外注意代码中调用的字典变量名是dic_letras,和实际定义的字典名dic不一致,也会导致匹配失败。

解决方案

直接遍历字典的key对完整字符串做子串替换即可,不需要拆分字符串,避免破坏词组结构:

# 替换用字典
dic = {
    'TREINTA Y UNO':'31',
    'TREINTA Y DOS':'32',
    'TREINTA Y TRES':'33',
    'TREINTA Y CUATRO':'34',
    'TREINTA Y CINCO':'35',
    'TREINTA Y SEIS':'36',
    'TREINTA Y SIETE':'37',
    'TREINTA Y OCHO':'38',
    'TREINTA Y NUEVE':'39'
}

v1 = 'TREINTA Y DOS' # 输入示例
sal = v1
for key, val in dic.items():
    sal = sal.replace(key, val)

print(sal) # 输出 32,符合预期

如果后续字典扩展存在长短key重叠的情况(比如同时有TREINTA和TREINTA Y DOS两个key),可以先将key按长度降序排序后再遍历替换,避免短key先替换破坏长key的完整性:

for key, val in sorted(dic.items(), key=lambda x: len(x[0]), reverse=True):
    sal = sal.replace(key, val)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 04:45:04