Python如何遍历字典按key替换对应value中的指定字符串?
问题排查
你原有代码的几个核心错误:
- 你的字典每个value是包含字符串的列表,不是单词列表,直接遍历
v拿到的是完整句子,不可能和key相等,所以判断条件永远不触发,自然没有输出 - 保留前2个字符的切片写错了,
word[1:]是从索引1(第二个字符)开始取全部内容,正确写法是word[:2] - 替换后缀要求是
...(三个点加三个空格),你只拼接了...不符合要求 - 没有对原字典的value做赋值操作,自然不会修改原字典内容
实现代码
# 遍历字典的键和对应值(值为列表) for key, sent_list in d.items(): # 构造替换后的词:前2个字符 + 要求的后缀 replace_word = key[:2] + "... " # 遍历列表里的每个句子,替换后直接覆盖原列表内容 for i in range(len(sent_list)): sent_list[i] = sent_list[i].replace(key, replace_word)
如果需要严格匹配独立单词,避免误替换长单词里包含的key字符串(比如key是pr时不会替换profoundly里的pr),可以用正则实现:
import re for key, sent_list in d.items(): replace_word = key[:2] + "... " for i in range(len(sent_list)): # \b代表单词边界,只会匹配独立的key单词 sent_list[i] = re.sub(rf'\b{re.escape(key)}\b', replace_word, sent_list[i])
效果验证
执行完上述代码后直接打印原字典,输出和你要求的结果完全一致:
print(d) # 输出: # { # 'entrenched': ['the Internet is firmly en... in our lives.'], # 'profoundly': ['racism is pr... entrenched within different social spheres.'] # }
内容的提问来源于stack exchange,提问作者John Aiton
相关产品推荐
相关产品推荐

