2011-03-24 124 views
0

我在學習Python並編寫一個跟蹤各種類型文件擴展名總數的程序。我認爲,一本字典將是完美的數據類型來跟蹤這個信息,是這樣的:使用Python字典數據類型對條目進行計數

.txt 14 
.c 27 
.java 12 

我有一些代碼編寫了建立一個集,這消除了重複的文件擴展名,但我會怎麼用Python中的字典做同樣的事情,但跟蹤發生的次數?

ext_list = set() 
for i in file_list: 
    ext_list.add(i.extension) 

回答

7

在Python 2.7或以上,則可以使用collections.Counter

from collections import Counter 
c = Counter(i.extension for i in file_list) 
print(c) 

Counter是從標準Python dict派生的類。

如果你喜歡使用一個普通的dict,你可以利用它setdefault()方法:

counts = {} 
for i in file_list: 
    counts.setdefault(i.extension, 0) 
    counts[i.extension] += 1 
+0

通過7秒打我給它。 +1。 – 2011-03-24 17:18:26

+0

Python 2.7或3.1+ - 我不相信它在3.0中可用。 – 2011-03-24 20:59:21

3
ext_count = collections.defaultdict(int) 
for i in file_list: 
    ext_count[i.extension] += 1