2017-06-11 24 views
-2

最簡單的舉例說明:pythonic字典計數器?

events = ['foo', 'bar', 'biz', 'foo', 'foo'] 
events_counter = {} 
for event in events: 
    if event not in events_counter: # { 
     events_counter[event] = 1 # { 
    else:       # { 
     events_counter[event] += 1 # { 
print events_counter 

# {'biz': 1, 'foo': 3, 'bar': 1} 

是否有實現更Python的方式突出顯示的代碼的方法嗎?我覺得應該有一個內置的功能,即:

events_counter.count_up(event) 

是的,我知道我可以只寫我自己的程序,謝謝。

+0

'collections.Counter'是你的朋友。這個問題太容易了 – RomanPerekhrest

+0

@RomanPerekhrest這個問題格式化和明確,只是因爲OP沒有意識到這並不是一個壞問題。這是說OP是真的應該發現它使用谷歌搜索。 –

+0

你沒有想過去搜索「python counter」嗎? –

回答

7

Python有一個內置的Counter數據結構這一點:

from collections import Counter 
events = ['foo', 'bar', 'biz', 'foo', 'foo'] 
cc = Counter(events) 
print(cc) 

輸出:

Counter({'foo': 3, 'bar': 1, 'biz': 1}) 
+0

ahaha道歉,我簡單地看了一下收藏,但一定是錯過了。 – Raven