用Python字典类型计数条目

0 投票
2 回答
1548 浏览
提问于 2025-04-16 14:20

我正在学习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

撰写回答