我在學習Python並編寫一個跟蹤各種類型文件擴展名總數的程序。我認爲,一本字典將是完美的數據類型來跟蹤這個信息,是這樣的:使用Python字典數據類型對條目進行計數
.txt 14
.c 27
.java 12
我有一些代碼編寫了建立一個集,這消除了重複的文件擴展名,但我會怎麼用Python中的字典做同樣的事情,但跟蹤發生的次數?
ext_list = set()
for i in file_list:
ext_list.add(i.extension)
我在學習Python並編寫一個跟蹤各種類型文件擴展名總數的程序。我認爲,一本字典將是完美的數據類型來跟蹤這個信息,是這樣的:使用Python字典數據類型對條目進行計數
.txt 14
.c 27
.java 12
我有一些代碼編寫了建立一個集,這消除了重複的文件擴展名,但我會怎麼用Python中的字典做同樣的事情,但跟蹤發生的次數?
ext_list = set()
for i in file_list:
ext_list.add(i.extension)
在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
ext_count = collections.defaultdict(int)
for i in file_list:
ext_count[i.extension] += 1
通過7秒打我給它。 +1。 – 2011-03-24 17:18:26
Python 2.7或3.1+ - 我不相信它在3.0中可用。 – 2011-03-24 20:59:21