Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从字符串中删除重复的字母_Python - Fatal编程技术网

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)