使用列表推导式替换含空格字符串时失效的问题求助
问题分析与解决方案
你的代码问题出在文本拆分方式:你把原句按空格拆成了单个单词,但字典里的替换规则是两个单词的组合短语。比如text.split()处理'JEDER KIRCHE'后得到['JEDER', 'KIRCHE'],遍历这两个单词时,字典里没有对应的单个单词键,所以直接返回原单词,拼接后还是原句,自然没生效。
修正后的代码
直接对完整文本进行短语替换,不需要拆分单个单词:
text = 'JEDER KIRCHE' ersetzungen = { 'EIN KIRCHE': 'EINE KIRCHE', 'KEIN KIRCHE': 'KEINE KIRCHE', 'JEDER KIRCHE': 'JEDE KIRCHE', 'JEDER SCHLOSS': 'JEDES SCHLOSS', 'JEDER BILD': 'JEDES BILD', 'JEDER AUGE': 'JEDES AUGE', 'JEDER DORF': 'JEDES DORF', 'JEDER HAUS': 'JEDES HAUS' } # 初始化修正文本为原文本 korrektur = text # 遍历所有替换规则,逐个替换 for falscher_ausdruck, richtiger_ausdruck in ersetzungen.items(): korrektur = korrektur.replace(falscher_ausdruck, richtiger_ausdruck) print(korrektur) # 输出: JEDE KIRCHE
扩展说明
这个方法支持同时修正多个错误短语,比如输入text = 'EIN KIRCHE UND JEDER HAUS',会输出'EINE KIRCHE UND JEDES HAUS'。如果后续有更长的短语需要替换,只要保证替换短语的顺序合理(比如长短语优先于包含它的短短语),就能正常工作。
内容的提问来源于stack exchange,提问作者softcoded
相关产品推荐
相关产品推荐

