標籤:
collection模組中有幾種資料結構我們可能用得到。
Counter是字典的子類,負責計數的一個字典,支援 + 加法 - 減法 & 求公用元素 | 求並集
print('Counter類型的應用')c = Counter("dengjingdong")#c = Counter({'n': 3, 'g': 3, 'd': 2, 'i': 1, 'o': 1, 'e': 1, 'j': 1})print("未經處理資料:",c)print("最多的兩個元素:",c.most_common(2))#輸出數量最多的元素print("d的個數:",c['d'])#輸出d的個數print(c.values())#輸出字典的value列表print(sum(c.values()))#輸出總字元數print(sorted(c.elements()))#將字典中的資料,按字典序排序print('\n\n')"""#刪除所有d元素del c['d'] b = Counter("dengxiaoxiao")#通過subtract函數刪除元素,元素個數可以變成負數。c.subtract(b) """"""可以添加資料b = Counter("qinghuabeida")c.update(b)"""
OrderedDict類型是一個有序的字典,它其實就是比普通字典多了一個順序。
print('OrderedDict類型的應用')dic = {}dic['a'] = 'A'dic['b'] = 'B'dic['c'] = 'C'odic = OrderedDict()odic['a'] = 'A'odic['b'] = 'B'odic['c'] = 'C'print('無序字典:',dic)print('有序字典:',odic)print('\n\n')
namedtup類型,一個類似於字典的元組,可以轉化為字典
print('namedtup類型的應用')deng = namedtuple('deng',['x','y'])i = deng(x = 11,y = 12)print('i的值為:', i )print('將兩個值相加:',i[0]+i[1])print('用屬性的方式相加:',i.x+i.y)m,n = iprint('類似元組的賦值:',m,n)d = i._asdict()print('轉化為一個字典:',d)
python collection模組中幾種資料結構(Counter、OrderedDict、namedtup)