为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

喵喵时光机 2019-12-25 15:47:11
给定一个字符串列表,我想按字母顺序对其进行排序并删除重复项。我知道我可以这样做:from sets import Set[...]myHash = Set(myList)但是我不知道如何按字母顺序从哈希中检索列表成员。我还没有嫁给哈希,因此任何实现此目的的方法都行得通。而且,性能也不是问题,所以我宁愿选择一种在代码中明确表示的解决方案,而不是快速但不透明的解决方案。
查看完整描述

3 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

可以使用内置功能对列表进行排序和重复数据删除:


myList = sorted(set(myList))

set 是Python> = 2.3的内置函数

sorted 是Python> = 2.4的内置函数


查看完整回答
反对 回复 2019-12-25
?
繁华开满天机

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))


查看完整回答
反对 回复 2019-12-25
  • 3 回答
  • 0 关注
  • 732 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信