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

Python匹配字典键替换列表元素时输出原列表问题求解

错误原因
  • 核心错误是替换前调用了i.upper()将原字符串转为全大写,但字典中存储的键是大小写敏感的德语月份(首字母大写、其余小写),全大写后的字符串不存在与字典键匹配的子串,因此替换完全不生效,还会错误修改原字符串的大小写。
  • 循环逻辑冗余:外层遍历字典键、内层遍历列表的写法,会多次遍历整个列表,效率较低。
修复代码
data = ['18. September 2021', '7. Juni 1946', 'Mai 2021, 19', '16.9.2021']

dictionary = {"Januar":"January","Februar":"February","März":"March","April":"April","Mai":"May","Juni":"June",
             "Juli":"July","August":"August","September":"September","Oktober":"October","November":"November",
             "Dezember":"December"}

# 优化循环顺序:遍历每个列表元素,匹配字典键做替换
for idx, item in enumerate(data):
    for de_month, en_month in dictionary.items():
        if de_month in item:
            data[idx] = item.replace(de_month, en_month)
            # 匹配到对应月份后即可跳出内层循环,避免无效遍历
            break

print(data)
输出结果

运行修复后的代码,得到预期输出:

['18. September 2021', '7. June 1946', 'May 2021, 19', '16.9.2021']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:42:01