如何解决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']