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

dva*_*ria 0 python dictionary

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

.txt  14
.c    27
.java 12
Run Code Online (Sandbox Code Playgroud)

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

ext_list = set()
for i in file_list:
    ext_list.add(i.extension)
Run Code Online (Sandbox Code Playgroud)

Sve*_*ach 7

在Python 2.7或更高版本中,您可以使用collections.Counter:

from collections import Counter
c = Counter(i.extension for i in file_list)
print(c)
Run Code Online (Sandbox Code Playgroud)

Counter是一个派生自标准Python的类dict.

如果您更喜欢使用普通平面dict,则可以利用其setdefault()方法:

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