如何解决python的list转换为set时自动排序的问题

2020-03-09  本文已影响0人  金融测试民工

    相信很多童鞋都是使用list转换为set达到去掉重复元素的目的,但是打印时会发现,直接将list转换为set去重后的结果,不是我们想要的,因为set会自动排序。

    于是google了一把,发现set确实没有直接的办法阻止其排序,但是有另外一个解决方法,就是使用collections.OrderedDict。具体做法是将list转换为collections.OrderedDict,然后读取器key,返回的就是我们需要的list。

>>> list = ['a','d','d','b']

>>> list

['a', 'd', 'd', 'b']

>>> set(list)

set(['a', 'b', 'd'])

>>> frozenset(list)

frozenset(['a', 'b', 'd'])


>>> import collections

>>> collections.OrderedDict.fromkeys(list)

OrderedDict([('a', None), ('d', None), ('b', None)])

>>> collections.OrderedDict.fromkeys(list).keys()

['a', 'd', 'b']

上一篇 下一篇

猜你喜欢

热点阅读