用Python字典类型计数条目
我正在学习Python,写一个程序来记录各种文件扩展名的总数。我觉得字典是个很合适的数据类型来跟踪这些信息,像这样:
.txt 14
.c 27
.java 12
我已经写了一些代码来创建一个集合,这样可以去掉重复的文件扩展名。但是我想知道,如何在Python中使用字典来做到这一点,同时还记录每种扩展名出现的次数呢?
ext_list = set()
for i in file_list:
ext_list.add(i.extension)
2 个回答
3
这段代码是用来处理一些特定的功能的。它可能涉及到一些编程的基本概念,比如变量、循环或者条件判断。具体来说,代码块中的内容会根据不同的输入或条件来执行不同的操作。
如果你是编程新手,可以把这段代码想象成一个简单的食谱。根据你准备的材料(输入),食谱会告诉你该怎么做(执行的操作)。每一步都很重要,缺少了某一步,最终的结果可能就不如你所期待的。
总之,这段代码的目的是为了实现某种功能,而具体的实现方式则依赖于代码中的逻辑和结构。
ext_count = collections.defaultdict(int)
for i in file_list:
ext_count[i.extension] += 1
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