collections模塊之defaultdict()與namedtuple()方法簡單介紹

1、defaultdict()

做用:根據數據建立字典時,須要爲一些數據生成字典,並且對值得類型進行限定的時候,考慮defaultdictapp

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])]

補充理解:spa

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()))

2、namedtuple()

namedtuple是繼承自tuple的子類。namedtuple和tuple比,有更多更酷的特性。namedtuple建立一個和tuple相似的對象,並且對象擁有能夠訪問的屬性。這對象更像帶有數據屬性的類,不過數據屬性是隻讀的。code

 

相關文章
相關標籤/搜索