在Python列表中出现一次以上的元素


问题内容

已关闭 。这个问题需要细节或说明。它当前不接受答案。


想改善这个问题吗? 添加详细信息并通过编辑此帖子来澄清问题。

2年前关闭。

改善这个问题

请帮忙(我知道这是一个愚蠢的问题):

我有一个清单d = [' ABA', ' AAB', ' BAA', ' BAA', ' AAB', ' ABA']。如何排除出现多次的元素?


问题答案:

转换为一组然后再次返回:

list(set(d))

如果顺序很重要,则可以通过记住原始索引的字典传递值。这种方法虽然可以表达为单个表达式,但要复杂得多:

[x for (i, x) in sorted((i, x) for (x, i) in dict((x, i) for (i, x) in reversed(list(enumerate(d)))).iteritems())]

当然,您不必使用理解力。对于此问题,可以使用一个相当简单的解决方案:

a = []
for x in d:
    if x not in a:
        a.append(x)

请注意,两种保留顺序的解决方案都假定您要保留每个重复元素的首次出现。