在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)
请注意,两种保留顺序的解决方案都假定您要保留每个重复元素的首次出现。