如何从Python列表中删除重复项并保持顺序?

给定一个字符串列表,我想按字母顺序对其进行排序并删除重复项。我知道我可以这样做:


from sets import Set

[...]

myHash = Set(myList)

但是我不知道如何按字母顺序从哈希中检索列表成员。


我还没有嫁给哈希,因此任何实现此目的的方法都行得通。而且,性能也不是问题,所以我宁愿选择一种在代码中明确表示的解决方案,而不是快速但不透明的解决方案。


喵喵时光机
浏览 765回答 3
3回答

慕桂英4014372

可以使用内置功能对列表进行排序和重复数据删除:myList = sorted(set(myList))set 是Python> = 2.3的内置函数sorted 是Python> = 2.4的内置函数

繁华开满天机

如果要保持原始列表的顺序,只需使用OrderedDict与None作为值。在Python2中:    from collections import OrderedDict    from itertools import izip, repeat    unique_list = list(OrderedDict(izip(my_list, repeat(None))))在Python3中,它甚至更简单:    from collections import OrderedDict    from itertools import repeat    unique_list = list(OrderedDict(zip(my_list, repeat(None))))如果您不喜欢迭代器(压缩和重复),则可以使用生成器(在2和3中均可使用):    from collections import OrderedDict    unique_list = list(OrderedDict((element, None) for element in my_list))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python