熱線電話:13121318867

登錄
首頁精彩閱讀Python字典的高級用法——統計計數
Python字典的高級用法——統計計數
2021-09-24
收藏

來源:AI入門學習

作者:小伍哥

在很多計算任務中,需要統計不同信息出現的次數,最常見的就是統計某段文字中每個詞或者每個字出現的次數,也就是常見的詞頻統計,這個時候,字典就派上了很大的用場,我們看看通過字典怎么進行統計。

我們用魯迅先生的經典語錄作為例子(略有改動),為了簡化,就不分詞了,自己分字,統計字數即可。分詞后形成了一個列表

text = list('床上有兩個枕頭,一個是我的,另一個也是我的') print(text)
['床', '上', '有', '兩', '個', '枕', '頭', ',', '一', '個', '是', '我', '的', ',', '另', '一', '個', '也', '是', '我', '的']

方法一:

通過字典,直接進行統計

word_dic = {} for word in text: if word in word_dic: word_dic[word] += 1 else: word_dic[word] = 1 print(word_dic) {'床': 1, '上': 1, '有': 1, '兩': 1, '個': 3, '枕': 1, '頭': 1, ',': 2, '一': 2, '是': 2, '我': 2, '的': 2, '另': 1, '也': 1}

方法二:

上面的語句加了條件判斷,顯得稍微有點復雜,我們可以簡化如下

word_dic = {} for word in text:
    word_dic[word] = word_dic.get(word,0)+1 print(word_dic)
{'床': 1, '上': 1, '有': 1, '兩': 1, '個': 3, '枕': 1, '頭': 1, ',': 2, '一': 2, '是': 2, '我': 2, '的': 2, '另': 1, '也': 1}

方法三:

還可以用collections 模塊的defaultdict進行統計,顯得更加簡潔,更加專業。

from collections import defaultdict
word_dic = defaultdict(int) for word in text:
    word_dic[word] += 1 print(word_dic)
defaultdict('int'>, {'床': 1, '上': 1, '有': 1, '兩': 1, '個': 3, '枕': 1, '頭': 1, ',': 2, '一': 2, '是': 2, '我': 2, '的': 2, '另': 1, '也': 1})

上面三種方法,看起來簡單,實際上,要理解其中的奧妙是非常困難的,特別是對于初學者,大家可以仔細琢磨。

方法一之所以要加條件判斷,是因為第一次出現的字,在字典中不存在,dict[key],當key不存在時會報錯。

方法二通過get(word,0)方法,獲取,如果不存在,則默認加入并置為0,后面加1就恰好是統計的次數了。需要充分理解get方法。

方法三通過defaultdict(int),默認不存在時是0,都不用設置,顯得更加簡潔,大家細細品味。


數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢