删除重复项的选项可能包括以下通用数据结构:
集合:无序的,唯一的元素
有序集:有序的、唯一的元素
下面是关于如何在Python中快速获取其中一个的总结。
鉴于
from collections import OrderedDict
seq = [u"nowplaying", u"PBS", u"PBS", u"nowplaying", u"job", u"debate", u"thenandnow"]
Code
选项1 -一组(无序):
list(set(seq))
# ['thenandnow', 'PBS', 'debate', 'job', 'nowplaying']
Python没有有序集,但这里有一些模拟有序集的方法。
选项2 -一个OrderedDict(插入顺序):
list(OrderedDict.fromkeys(seq))
# ['nowplaying', 'PBS', 'job', 'debate', 'thenandnow']
选项3 -字典(插入顺序),Python 3.6+中的默认值。在这篇文章中可以看到更多细节:
list(dict.fromkeys(seq))
# ['nowplaying', 'PBS', 'job', 'debate', 'thenandnow']
注意:列出的元素必须是可哈希的。在这篇博客文章中查看后一个示例的详细信息。此外,请参阅R. Hettinger关于相同技术的帖子;保序字典是从他早期的一个实现扩展而来的。参见更多关于总排序的信息。