如何修改Python代码使输出中重复的对应字符仅出现一次
问题修复方案
问题根因
- 原代码遍历输入字符串
apples时没有做重复字符校验,字符串中出现2次的p会被连续两次命中判断逻辑,重复打印 - 函数未定义返回值,外层
print()调用会输出默认返回的None,和预期输出末尾的none效果匹配,无需调整这部分逻辑
修复后可直接运行的代码
def in_both(word1, word2): printed_chars = set() for letter in word1: if letter not in word2 and letter not in printed_chars: print(letter) printed_chars.add(letter) print(in_both("apples", "oranges"))
逻辑说明
- 新增的
printed_chars集合用来记录已经打印过的符合条件的字符,避免同一个字符重复输出 - 保留了字符在原字符串中首次出现的顺序,输出顺序和预期完全一致
内容的提问来源于stack exchange,提问作者user16555888
相关产品推荐
相关产品推荐

