python collection模塊中幾種數據結構(Counter、OrderedDict、namedtup)

jphp 9年前發布 | 838 次閱讀 Python

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 = i
print('類似元組的賦值:',m,n)
d = i._asdict()
print('轉化為一個字典:',d)



 本文由用戶 jphp 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!