字符串转集合后如何保留首次出现字符顺序且不使用reverse函数?
实现保留首次出现字符的去重(无需reverse)
你用set处理字符串后得到无序结果,是因为集合本身不保证元素顺序。要保留字符首次出现的顺序且不用reverse,可以试试这两种方法:
方法1:手动遍历记录已出现字符
直接遍历原字符串,用列表存已经见过的字符,遇到新字符就加进去,最后拼接成字符串:
x = 'ABBA' seen_chars = [] for c in x: if c not in seen_chars: seen_chars.append(c) print(''.join(seen_chars)) # 输出 AB
方法2:利用Python3.7+的有序字典特性
Python3.7及以上的字典会保留键的插入顺序,用dict.fromkeys()可以快速基于原字符串生成键为字符的字典(自动去重),再提取键拼接即可:
x = 'ABBA' print(''.join(dict.fromkeys(x))) # 输出 AB
这个写法更简洁,底层逻辑是字典的键只会保留首次出现的那个,且顺序和原字符串一致,完全不需要反转操作。
内容的提问来源于stack exchange,提问作者Jethy11
相关产品推荐
相关产品推荐

