【问题标题】:Counting entries with Python dictionary datatype使用 Python 字典数据类型计算条目
【发布时间】:2011-03-24 17:12:56
【问题描述】:

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

.txt  14
.c    27
.java 12

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

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

【问题讨论】:

    标签: python dictionary


    【解决方案1】:

    在 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
    

    【讨论】:

    • 领先我 7 秒。 +1。
    • Python 2.7 或 3.1+ - 我不相信它在 3.0 中可用。
    【解决方案2】:
    ext_count = collections.defaultdict(int)
    for i in file_list:
      ext_count[i.extension] += 1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-05
      • 1970-01-01
      • 2021-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-11
      相关资源
      最近更新 更多