Python 从字符串中删除重复的字母
如果有人能提供一个简短的方法来删除重复的字母,我们将不胜感激Python 从字符串中删除重复的字母,python,Python,如果有人能提供一个简短的方法来删除重复的字母,我们将不胜感激 假设我有一个字符串列表[‘苹果’、‘香蕉’]。我想删除列表项中的重复字母,输出保持原始顺序为['APLE','BAN']。这些用于列表中的n个项目。您可以使用字典/数组在单词中存储遇到的字母,并为每个这样的单词相应地准备一个临时字符串,最后将其推送到结果数组中。 大概是这样的: final = [] for word in words: s = '' seen = {} for letter in word:
假设我有一个字符串列表[‘苹果’、‘香蕉’]。我想删除列表项中的重复字母,输出保持原始顺序为['APLE','BAN']。这些用于列表中的n个项目。您可以使用字典/数组在单词中存储遇到的字母,并为每个这样的单词相应地准备一个临时字符串,最后将其推送到结果数组中。 大概是这样的:
final = []
for word in words:
s = ''
seen = {}
for letter in word:
if letter in seen:
pass
else:
s += letter
seen[letter] = True
final.append(s)
这是一个简单的单行程序,可以保持顺序:
>>> a = [ 'APPLE', 'GOOGLE', 'BANANA' ]
>>> [''.join( dict.fromkeys(i).keys() ) for i in a]
['APLE', 'GOLE', 'BAN']
请告诉我们您已经尝试了什么,以及您遇到了什么问题。我尝试过使用迭代器,但是两个级别的for循环需要时间。我在寻找一些我不知道的捷径。我想避免这个迭代。谢谢你,这正是我在寻找的。您是否在字典中使用了唯一键的属性?请解释我的理解。感谢you@SumitSharma从python 3开始,DICT就保证被订购。有些东西对较旧版本的python不起作用,为了确保代码的可移植性,明智的做法是使用OrderedDict@ÓscarLópez python 2已经死了:python 2在1月1日宣布生命结束2020@SumitSharma是的,钥匙在dict中是独一无二的
words = ['APPLE', 'BANANA']
output = []
for word in words:
seen = ''
for char in word:
if char not in seen:
seen += char
output.append(seen)
print(output)