之前看到的的方法都是利用集合
keys = ['a', 'a', 'v', 'c', 'b', 'v', 'b']
list(set(keys))
Out: ['b', 'v', 'a', 'c']
问题:会导致去重之后list乱序.
注意到Python3 中dict默认是ordereddict 可以利用这一特性对list去重并保持原来的顺序
dct = {k:None for k in keys}
dct
Out: {'a': None, 'v': None, 'c': None, 'b': None}
list(dct)
Out: ['a', 'v', 'c', 'b']
from itertools import zip_longest
dct = dict(zip_longest(keys, []))
dct
Out: {'a': None, 'v': None, 'c': None, 'b': None}
list(dct)
Out: ['a', 'v', 'c', 'b']
dct = dict.fromkeys(['a','b','c', 'a', 'x','b','x','a'])
dct
{'a': None, 'b': None, 'c': None, 'x': None}
list(dct)
Out: ['a', 'b', 'c', 'x']