千家信息网

Python统计次数方法技巧有哪些

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容介绍了"Python统计次数方法技巧有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、
千家信息网最后更新 2026年11月03日Python统计次数方法技巧有哪些

本篇内容介绍了"Python统计次数方法技巧有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、使用字典 dict 统计

循环遍历出一个可迭代对象的元素,如果字典中没有该元素,那么就让该元素作为字典的键,并将该键赋值为1,如果存在则将该元素对应的值加1。

lists = ['a','a','b',1,2,3,1]count_dist = dict()for i in lists:    if i in count_dist:        count_dist[i] += 1    else:        count_dist[i] = 1print(count_dist)# {'a': 2, 'b': 1, 1: 2, 2: 1, 3: 1}

二、使用 collections.defaultdict 统计

defaultdict(parameter) 接受一个类型参数,例如:int、float、str 等。

传递进来的类型参数,不是用来约束值的类型,更不是约束键的类型,而是当键不存在时,实现一种值的初始化。

defaultdict(int) -- 初始化为0defaultdict(float) -- 初始化为0.0defaultdict(str) -- 初始化为''from collections import defaultdictlists = ['a','a','b',1,2,3,1]count_dict = defaultdict(int)for i in lists:    count_dict[i] += 1print(count_dict)# defaultdict(, {'a': 2, 'b': 1, 1: 2, 2: 1, 3: 1})

三、List count方法

count() 方法用于统计某个元素在列表中出现的次数。

使用语法:

# 使用语法list.count(obj) # 返回次数

统计单个对象次数:

# 统计单个对象次数aList = [123, 'abc', 'good', 'abc', 123]print("Count for 123 :", aList.count(123))print("Count for abc :", aList.count('abc'))# Count for 123 : 2# Count for abc : 2

统计List中每一个对象次数:

test = ["aaa","bbb","aaa","aaa","ccc","ccc","ddd","aaa","ddd","eee","ddd"]print(test.count("aaa"))# 4print(test.count("bbb"))# 1test_result = []for i in test:    if i not in test_result:        test_result.append(i)print(test_result)for i in test_result:    print(f"{i}:{test.count(i)}")'''41['aaa', 'bbb', 'ccc', 'ddd', 'eee']aaa:4bbb:1ccc:2ddd:3eee:1'''

四、使用集合(set)和列表(list)统计

先用 set 去重,然后循环把每一个元素和对应的次数 list.count(item) 组成元组。

'''学习中遇到问题没人解答?小编创建了一个Python学习交流群:531509025寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!'''lists = ['a','a','b',1,2,3,1]count_set = set(lists)print(count_set) # 集合去重# {1, 2, 3, 'b', 'a'}count_list = list()for i in count_set:    count_list.append((i, lists.count(i)))print(count_list)    # [(1, 2), (2, 1), (3, 1), ('b', 1), ('a', 2)]

五、collections.Counter方法

Counter 是一个容器对象,使用 collections 模块中的 Counter 类可以实现 hash 对象的统计。

Counter 是一个无序的容器类型,以字典的键值对形式存储,其中元素作为 key,其计数作为 value。

计数值可以是任意的 Interger(包括0和负数)。

Counter() 对象还有几个可调用的方法:

  • most_common(n) -- TOP n 个出现频率最高的元素

  • elements -- 获取所有的键 通过list转化

  • update -- 增加对象

  • subtrct -- 删除对象

  • 下标访问 a['xx'] --不存在时返回0

import collectionsc = collections.Counter('helloworld')

直接显示各个元素频次

print(c)# Counter({'l': 3, 'o': 2, 'h': 1, 'e': 1, 'w': 1, 'r': 1, 'd': 1})

使用 most_common显示最多的n个元素

当多个元素计数值相同时,排列是无确定顺序的。

print(c.most_common(3))# [('l', 3), ('o', 2), ('h', 1)]

使用数组下标获取,类似字典方式:

print("The number of 'o':", c['o'])# The number of 'o': 2

统计列表: (只要列表中对象都是可以哈希的)

import collectionsx = [1,2,3,4,5,6,7,8,1,8,8,8,4,3,5]c = collections.Counter(x)print(c)# Counter({1: 2, 2: 1, 3: 2, 4: 2, 5: 2, 6: 1, 7: 1, 8: 4})print(c.most_common(3))# [(8, 4), (1, 2), (3, 2)]dictc = dict(c) # 转换为字典print(dictc)# {1: 2, 2: 1, 3: 2, 4: 2, 5: 2, 6: 1, 7: 1, 8: 4}

如果列表中有 unhashalbe 对象,例如:可变的列表,是无法统计的。

元组也可以统计。

c = collections.Counter([[1,2], "hello", 123, 0.52])# TypeError: unhashable type: 'list'

得到 Counter 计数器对象之后,还可以在此基础上进行增量更新。

elements() -- 返回迭代器

元素排列无确定顺序,个数小于1的元素不被包含。

'''学习中遇到问题没人解答?小编创建了一个Python学习交流群:531509025寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!'''import collectionsc = collections.Counter(a=4,b=2,c=1)print(c)# Counter({'a': 4, 'b': 2, 'c': 1})list(c.elements())# ['a', 'a', 'a', 'a', 'b', 'b', 'c']

subtract函数 -- 减去元素

import collectionsc = collections.Counter(["a","b","c","a"])print(c)# Counter({'a': 2, 'b': 1, 'c': 1})print(list(c.elements())) # 展开# ['a', 'a', 'b', 'c']# 减少元素c.subtract(["a","b"])print(c)# Counter({'a': 1, 'c': 1, 'b': 0})print(list(c.elements()))# ['a', 'c']

update函数 -- 增加元素

在进行增量计数时候,update函数非常有用。

'''学习中遇到问题没人解答?小编创建了一个Python学习交流群:531509025寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!'''import collectionsc = collections.Counter(["a","b","c","a"])print(c)# Counter({'a': 2, 'b': 1, 'c': 1})print(list(c.elements())) # 展开# ['a', 'a', 'b', 'c']c.update(["a","d"])print(c)# Counter({'a': 3, 'b': 1, 'c': 1, 'd': 1})print(list(c.elements()))# ['a', 'a', 'a', 'b', 'c', 'd']

del函数 -- 删除键

当计数值为0时,并不意味着元素被删除,删除元素应当使用del。

import collectionsc = collections.Counter('helloworld')print(c)# Counter({'l': 3, 'o': 2, 'h': 1, 'e': 1, 'w': 1, 'r': 1, 'd': 1})c["d"] = 0print(c)# Counter({'l': 3, 'o': 2, 'h': 1, 'e': 1, 'w': 1, 'r': 1, 'd': 0})del c["l"]print(c)# Counter({'o': 2, 'h': 1, 'e': 1, 'w': 1, 'r': 1, 'd': 0})

"Python统计次数方法技巧有哪些"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

元素 统计 对象 学习 次数 方法 字典 类型 函数 不错 志同道合 互帮 互帮互助 学习交流 学习教程 小伙 小伙伴 教程 电子 电子书 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网络科技 西安纸贵互联网科技有限公司 美国互联网保险保险科技 善班互联网科技 成都互联网科技公司 智慧科技互联网 甘肃拓世互联网科技有限公司 哈尔滨新华互联网科技 金融科技与互联网金融相同和不同 受益于互联网科技的高速发展 互联网媒体平台算高科技产业 西安小鹰速贷互联网科技有限公司 威龙国际互联网科技公司 互联网数据科技专业 中和天地互联网科技有限公司 恒生互联网科技业指数调整周期 艺电能源互联网科技有限公司招聘 马化腾互联网科技教学 广西泛欧互联网科技有限公司 互联网科技自媒体灵感 互联网科技公司 互联网科技公司起名 科技互联网项目 与互联网科技公司 紫鲸互联网科技 狮子座互联网科技有限公司 互联网金融科技平台 互联网科技包装股份有限公司上市 信承诺互联网科技有限公司 数字互联网科技有限公司
0