python中的基本数据结构有list,dict,tuple,set。以及,collections,可以处理并维护一个有序的dict,可以提高程序的运行效率。
1、collections中的defaultdict的使用
defaultdict在字典dict的基础上再添加一个参数default_factory(default_factory可以指定为list,set,int)
例1
>>from collections import defaultdict
>>l=[('a',2),('b',3),('a',1),('b',4),('a',3),('a',1),('b',3)]
>>d=defaultdict(list)
>>for key,value in l:
d[key].append(value)
>>d
defaultdict(<class 'list'>,{'a':[2,1,3,1],'b':[3,4,3]}
例2
>>d = defaultdict(set)
>>for key,value in l:
d[key].add(value)
>>d
defaultdict(<class 'set'>, {'a': {1, 2}, 'b': {3}})
例3
>>> sen='hello word'
>>> d = defaultdict(int)
>>> for key in sen:
... d[key]+=1
...
>>> d
defaultdict(<class 'int'>, {'h': 1, 'e': 1, 'l': 2, 'o': 2, ' ': 1, 'w': 1, 'r': 1, 'd': 1})
2、collections中的OrdereDict的使用
字典是无序的,可以使用OrdereDict当作有序的字典。
参考:https://www.jianshu.com/p/8acb163dd1fe