Collections模块下的Counter

时间:2023-03-10 01:50:22
Collections模块下的Counter

class Counter(dict)

  这个类是dict的子类,对哈希类型的项进行计数,元素被存储为字典的键,他们的计数将作为字典的键值。

  主要介绍两个方法:

  1.初始化方法:__init__(*args,**kwds)

  该方法可以接收一个可迭代的输入对象来计数每个元素,也可以从另一个映射(元素与其的计数)中进行初始化。

  官方例子:

  Collections模块下的Counter

运行结果如下:

  Collections模块下的Counter

  2.most_common(n)

  该方法用来列出最常见的元素,n默认为None,将会列出所有的元素。

来自Django源码的很好的应用例子用来学习一下,应用了生成器表达式,而且应用了for in if的语句组合:

            counts = Counter(
app_config.name for app_config in self.app_configs.values())
duplicates = [
name for name, count in counts.most_common() if count > 1]
if duplicates:
raise ImproperlyConfigured(
"Application names aren't unique, "
"duplicates: %s" % ", ".join(duplicates))