给定一个字符串列表,我想按字母顺序对其进行排序并删除重复项。我知道我可以这样做:from sets import Set[...]myHash = Set(myList)但是我不知道如何按字母顺序从哈希中检索列表成员。我还没有嫁给哈希,因此任何实现此目的的方法都行得通。而且,性能也不是问题,所以我宁愿选择一种在代码中明确表示的解决方案,而不是快速但不透明的解决方案。
3 回答
慕桂英4014372
TA贡献1871条经验 获得超13个赞
可以使用内置功能对列表进行排序和重复数据删除:
myList = sorted(set(myList))
set 是Python> = 2.3的内置函数
sorted 是Python> = 2.4的内置函数
繁华开满天机
TA贡献1816条经验 获得超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))
添加回答
举报
0/150
提交
取消