1.計數器(counter)app
counter是對字典的方法,用來追蹤值的出現次數;具有字典的全部功能和本身的功能。spa
>>> from collections import Counter >>> d2 = Count >>> d2 = Counter('abbcccddd') #對值計數 >>> print(d2) Counter({'d': 3, 'c': 3, 'b': 2, 'a': 1}) >>> print(type(d2)) <class 'collections.Counter'> >>> d2 = Counter('abbcccddd') >>> for i in d2.elements(): #計數元素迭代器 ... print(i) ... b b a d d d c c c >>> d2.clear() #清空元素 >>> print(d2) Counter() >>> d3 = d2.copy() #拷貝 >>> d3 Counter({'d': 3, 'c': 3, 'b': 2, 'a': 1}) >>> d2.update('ddffffff') #更新 >>> d2 Counter({'f': 6, 'd': 5, 'c': 3, 'b': 2, 'a': 1}) >>> d2.subtract('fffff') #減去元素個數 >>> d2 Counter({'d': 5, 'c': 3, 'b': 2, 'a': 1, 'f': 1}) >>> d4 = d2.pop('f') #提取dict的key >>> d4 1 >>> d2 Counter({'d': 5, 'c': 3, 'b': 2, 'a': 1})
二、有序字典(OrderedDict)code
OrderedDict是對字典的補充,它能夠記住字典元素添加的順序。對象
>>> from collections import OrderedDict >>> dic1 = OrderedDict({'k1':'v1','k2':'v2','k4':'v4','k3':'v3'}) >>> dic1 #建立有序列的字典 OrderedDict([('k4', 'v4'), ('k1', 'v1'), ('k2', 'v2'), ('k3', 'v3')]) >>> print(type(dic1)) <class 'collections.OrderedDict'> >>> dic1.popitem() #默認提取最後要給key ('k3', 'v3') >>> dic1 OrderedDict([('k4', 'v4'), ('k1', 'v1'), ('k2', 'v2')]) >>> dic1.move_to_end('k4') #將指定key移到最後 >>> dic1 OrderedDict([('k1', 'v1'), ('k2', 'v2'), ('k4', 'v4')])
三、默認字典(defaultdict)blog
defaultdict是對字典的類型補充,它默認給字典的值設置了一個類型element
>>> from collections import defaultdict >>> dict1 = defaultdict(list) #建立默認字典 >>> dict1 defaultdict(<class 'list'>, {}) >>> print(type(dict1)) <class 'collections.defaultdict'> >>> for i in range(20): #實例 ... if i%2 == 0: ... dict1['k1'].append(i) ... else: ... dict1['k2'].append(i) ... >>> dict1 defaultdict(<class 'list'>, {'k1': [0, 2, 4, 6, 8, 10, 12, 14, 16, 18], 'k2': [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]})
四、可命名元組(namedtuple)it
根據namedtuple能夠建立一個包含tuple全部功能以及其餘功能的類型io
>>> from collections import namedtuple >>> tup1 = namedtuple('tup1',['x','y','z','u']) #建立可命名元組 >>> obj = tup1(111,22,333,4444) #建立對象 >>> print(obj.x) #輸出對象序列的值 111 >>> print(obj.y) 22 >>> print(obj.z) 333 >>> print(obj.u) 4444