使用Python字典数据类型计数条目

时间:2011-03-24 17:12:57

标签: python dictionary

我正在学习Python并编写一个程序来跟踪各种类型的文件扩展名的总数。我认为字典将是跟踪此信息的完美数据类型,如:

.txt  14
.c    27
.java 12

我编写了一些构建一个集合的代码,它消除了重复的文件扩展,但是我如何在Python中使用字典来做同样的事情,但是要跟踪出现次数?

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:3)

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