Python遍历字符串获取唯一值遇阻:仅识别'A'如何解决?
问题分析与解决
你的代码核心问题是误用了break语句:当遍历到第二个'A'时,因为它已经在unique_letters列表里,break会直接终止整个循环,导致后续所有字符都没机会被处理。
修正后的代码
def letters_learned_today(word): unique_letters = [] for letter in word: if letter not in unique_letters: unique_letters.append(letter) return unique_letters word = 'AAABBVSCDDDERZAUJJFFPOUSST' print(letters_learned_today(word))
去掉break后,程序会跳过重复字符,继续遍历整个字符串,把所有首次出现的字符加入列表。
更高效的实现方式
如果需要保留字符首次出现的顺序,Python 3.7+ 可以用dict.fromkeys()快速完成去重,代码更简洁:
def letters_learned_today(word): return list(dict.fromkeys(word)) word = 'AAABBVSCDDDERZAUJJFFPOUSST' print(letters_learned_today(word))
如果不需要顺序,直接用集合set去重更高效(但集合是无序的):
def letters_learned_today(word): return list(set(word))
内容的提问来源于stack exchange,提问作者Katerina_080
相关产品推荐
相关产品推荐

