【Python】Python字典的高級用法-統(tǒng)計(jì)計(jì)數(shù)
在很多計(jì)算任務(wù)中,需要統(tǒng)計(jì)不同信息出現(xiàn)的次數(shù),最常見的就是統(tǒng)計(jì)某段文字中每個(gè)詞或者每個(gè)字出現(xiàn)的次數(shù),也就是常見的詞頻統(tǒng)計(jì),這個(gè)時(shí)候,字典就派上了很大的用場,我們看看通過字典怎么進(jìn)行統(tǒng)計(jì)。
我們用魯迅先生的經(jīng)典語錄作為例子(略有改動(dòng)),為了簡化,就不分詞了,自己分字,統(tǒng)計(jì)字?jǐn)?shù)即可。分詞后形成了一個(gè)列表
text = list('床上有兩個(gè)枕頭,一個(gè)是我的,另一個(gè)也是我的')print(text)['床', '上', '有', '兩', '個(gè)', '枕', '頭', ',', '一', '個(gè)', '是', '我','的', ',', '另', '一', '個(gè)', '也', '是', '我', '的']
方法一:
通過字典,直接進(jìn)行統(tǒng)計(jì)
word_dic = {}for word in text:if word in word_dic:word_dic[word] += 1else:word_dic[word] = 1print(word_dic){'床': 1, '上': 1, '有': 1, '兩': 1, '個(gè)': 3, '枕': 1, '頭': 1, ',': 2,'一': 2, '是': 2, '我': 2, '的': 2, '另': 1, '也': 1}
方法二:
上面的語句加了條件判斷,顯得稍微有點(diǎn)復(fù)雜,我們可以簡化如下
word_dic = {}for word in text:word_dic[word] = word_dic.get(word,0)+1print(word_dic){'床': 1, '上': 1, '有': 1, '兩': 1, '個(gè)': 3, '枕': 1, '頭': 1, ',': 2,'一': 2, '是': 2, '我': 2, '的': 2, '另': 1, '也': 1}
方法三:
還可以用collections 模塊的defaultdict進(jìn)行統(tǒng)計(jì),顯得更加簡潔,更加專業(yè)。
from collections import defaultdictword_dic = defaultdict(int)for word in text:word_dic[word] += 1print(word_dic)defaultdict(<class 'int'>, {'床': 1, '上': 1, '有': 1, '兩': 1, '個(gè)': 3, '枕': 1,'頭': 1, ',': 2, '一': 2, '是': 2, '我': 2, '的': 2, '另': 1, '也': 1})
Python字典詳解-超級完整版
··· END ···
往期精彩回顧 本站qq群851320808,加入微信群請掃碼:
評論
圖片
表情
