一、defaultdict()
作用:根据数据创建字典时,需要为一些数据生成字典,而且对值得类型进行限定的时候,考虑defaultdict
from collections import defaultdict list_01 = [('Apple', 10), ('Pen', 20), ('Apple', 30), ('Pen', 40), ('Banana', 33)] d01 = defaultdict(list) # 生成一个defaultdict对象 for k, v in list_01: d01[k].append(v) print(d01) # defaultdict(<class 'list'>, {'Apple': [10, 30], 'Pen': [20, 40], 'Banana': [33]}) print(dict(d01.items())) # {'Apple': [10, 30], 'Pen': [20, 40], 'Banana': [33]} print(list(d01.items())) # [('Apple', [10, 30]), ('Pen', [20, 40]), ('Banana', [33])]
补充理解:
list_01 = [('Apple', 10), ('Pen', 20), ('Apple', 30), ('Pen', 40), ('Banana', 33)] dict01 = {} for k, v in list_01: dict01.setdefault(k, []).append(v) print(dict01) print(list(dict01.items()))
二、namedtuple()
namedtuple是继承自tuple的子类。namedtuple和tuple比,有更多更酷的特性。namedtuple创建一个和tuple类似的对象,而且对象拥有可以访问的属性。这对象更像带有数据属性的类,不过数据属性是只读的。