【Python】Python字典的高级用法-统计计数
生活随笔
收集整理的這篇文章主要介紹了
【Python】Python字典的高级用法-统计计数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在很多計算任務中,需要統計不同信息出現的次數,最常見的就是統計某段文字中每個詞或者每個字出現的次數,也就是常見的詞頻統計,這個時候,字典就派上了很大的用場,我們看看通過字典怎么進行統計。
?
我們用魯迅先生的經典語錄作為例子(略有改動),為了簡化,就不分詞了,自己分字,統計字數即可。分詞后形成了一個列表
?
text = list('床上有兩個枕頭,一個是我的,另一個也是我的') print(text) ['床', '上', '有', '兩', '個', '枕', '頭', ',', '一', '個', '是', '我','的', ',', '另', '一', '個', '也', '是', '我', '的']方法一:
通過字典,直接進行統計
word_dic = {} for word in text:if word in word_dic:word_dic[word] += 1else: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(<class '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,都不用設置,顯得更加簡潔,大家細細品味。
不明白的可以看我的另外兩篇文章:
Python庫collections,讓你擊敗99%的Pythoner【萬字長文詳解】
Python字典詳解-超級完整版
?
···? END? ··· 往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯黃海廣老師《機器學習課程》視頻課 本站qq群851320808,加入微信群請掃碼:總結
以上是生活随笔為你收集整理的【Python】Python字典的高级用法-统计计数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Uncaught (in promise
- 下一篇: Python装饰器(一)