如何利用字典实现输入字符串中指定词汇的映射替换?
问题分析与解决方案
现有代码的问题
- 变量覆盖:你先用
words存储拆分后的单词列表,之后又把它赋值成字典,直接覆盖了之前的输入数据,完全无法使用拆分后的单词做匹配。 - 字典语法错误:
'walking': 'pedestrian road'后面缺少逗号,运行时会触发语法报错。 - 缺少匹配逻辑:只定义了替换规则,但没有遍历输入单词、匹配规则并输出结果的代码。
修正后的实现代码
# 获取输入句子 input_sentence = input("What is the sentence?") # 定义替换规则字典,换变量名避免覆盖 replace_map = { 'swimming': 'swimming pool', 'walking': 'pedestrian road', # 补上缺失的逗号 'flying': 'airplane' } # 拆分句子为单词列表 words = input_sentence.split() # 遍历单词匹配替换规则 for word in words: # 去除单词两端标点,避免干扰匹配(比如句号、逗号) cleaned_word = word.strip('.,!?') if cleaned_word in replace_map: print(replace_map[cleaned_word]) # 找到第一个匹配项就停止,符合预期输出效果 break else: # 无匹配项时的提示 print("No matching word found")
关键说明
- 变量区分:用
input_sentence存输入内容,replace_map存替换规则,彻底解决变量覆盖问题。 - 标点处理:输入单词可能带标点(比如
today.),用strip去除两端常见标点,保证能匹配字典里的纯单词键。 - 匹配逻辑:遍历每个单词,找到匹配项就输出对应替换值,
break确保只输出第一个匹配结果(满足输入I am swimming today.时输出swimming pool的需求)。
内容的提问来源于stack exchange,提问作者steve_l
相关产品推荐
相关产品推荐

