iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > Python >5种Python统计次数方法技巧
  • 155
分享到

5种Python统计次数方法技巧

2024-04-02 19:04:59 155人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录一、使用字典 dict 统计二、使用 collections.defaultdict 统计三、List count方法四、使用集合(set)和列表(list)统计五、collec

一、使用字典 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] = 1
print(count_dist)
# {'a': 2, 'b': 1, 1: 2, 2: 1, 3: 1}

二、使用 collections.defaultdict 统计

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

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


defaultdict(int) -- 初始化为0
defaultdict(float) -- 初始化为0.0
defaultdict(str) -- 初始化为''
from collections import defaultdict
lists = ['a','a','b',1,2,3,1]
count_dict = defaultdict(int)
for i in lists:
    count_dict[i] += 1
print(count_dict)
# defaultdict(<class 'int'>, {'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"))
# 4
print(test.count("bbb"))
# 1

test_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)}")

'''
4
1
['aaa', 'bbb', 'ccc', 'ddd', 'eee']
aaa:4
bbb:1
ccc:2
ddd:3
eee: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 collections
c = 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 collections
x = [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 collections
c = 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 collections
c = 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 collections
c = 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 collections
c = collections.Counter('helloworld')
print(c)
# Counter({'l': 3, 'o': 2, 'h': 1, 'e': 1, 'w': 1, 'r': 1, 'd': 1})

c["d"] = 0
print(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})

到此这篇关于5种Python统计次数方法技巧的文章就介绍到这了,更多相关Python内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 5种Python统计次数方法技巧

本文链接: https://www.lsjlt.com/news/156569.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 5种Python统计次数方法技巧
    目录一、使用字典 dict 统计二、使用 collections.defaultdict 统计三、List count方法四、使用集合(set)和列表(list)统计五、collec...
    99+
    2024-04-02
  • Python统计次数方法技巧有哪些
    本篇内容介绍了“Python统计次数方法技巧有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、使用字典 dict 统计循环遍历出一个可...
    99+
    2023-06-25
  • PHP数组写法汇总:5种技巧助你游刃有余
    PHP数组写法汇总:5种技巧助你游刃有余 在PHP开发中,数组是一种非常重要的数据结构,多种写法可以让我们更加灵活地处理数据。本文将分享5种常用的PHP数组写法技巧,通过具体的代码示例...
    99+
    2024-03-14
    定义方式 遍历方法 索引与键名
  • PHP数组写法汇总:5种技巧助你游刃有余
    PHP数组写法汇总:5种技巧助你游刃有余 在PHP开发中,数组是一种非常重要的数据结构,多种写法可以让我们更加灵活地处理数据。本文将分享5种常用的PHP数组写法技巧,通过具体的代码示例...
    99+
    2024-03-14
    定义方式 遍历方法 索引与键名
  • 5种方法让ChatGPT生成统计图表,总有一种适合你
    ChatGPT可以生成各种类型的统计图表,以下是五种方法:1. 使用描述生成:直接向ChatGPT提供数据和要求的统计图表类型,然后...
    99+
    2023-09-21
    ChatGPT
  • Python保留指定位数的小数【5种方法】
    1 %.2f’ %[变量] 【四舍五入】 可以在print()打印处使用,也可以赋值给新的变量进行输出 # 四舍五入方法a = 2.345566print('%.4f'% a)# 2.3456prin...
    99+
    2023-08-31
    python 开发语言
  • Python统计列表元素出现次数的方法示例
    1. 引言 在使用Python的时候,通常会出现如下场景: array = [1, 2, 3, 3, 2, 1, 0, 2] 获取array中元素的出现次数 比如,上述...
    99+
    2024-04-02
  • Python编程中的5个实用算法技巧
    Python是一门强大而灵活的编程语言,它的多种数据结构和内置函数使它成为了数据科学和机器学习的首选语言。在Python编程中,算法是重要的一环,因为它们可以帮助我们处理和分析数据,并解决各种问题。本文将介绍,包括排序、搜索、计数、过滤和...
    99+
    2023-11-03
    日志 django 编程算法
  • Python数据预处理常用的5个技巧
    目录前言数据集示例 1示例 2示例 3示例 4示例 5总结前言 我们知道数据是一项宝贵的资产,近年来经历了指数级增长。但是原始数据通常不能立即使用,它需要进行大量清理和转换。 Pan...
    99+
    2024-04-02
  • python实现定时器的5种方法
    目录1. 使用time,threading 模块2. 使用datetime,threading 模块3. 使用time,schedule 模块 (执行单个任务)4. 使用time,s...
    99+
    2023-03-06
    python 定时器
  • Python词频统计的两种方法详解
    目录统计文件里每个单词的个数思路:想法成立开始实践方法一:方法二:总结统计文件里每个单词的个数 思路: 分别统计文档中的单词,与出现的次数 用两个列表将其保存起来,最后再用zip(...
    99+
    2024-04-02
  • Python统计词频的几种方法小结
    目录方法一:运用集合去重方法方法二:运用字典统计方法三:使用计数器本文介绍python统计词频的几种方法,供大家参考 方法一:运用集合去重方法 def word_count1(wo...
    99+
    2023-03-01
    Python统计词频 Python 文本词频统计
  • python OpenCV计算图片相似度的5种算法
    目录5种算法参考文章:原始两张图片: 代码运行结果如下。 5种算法 值哈希算法、差值哈希算法和感知哈希算法都是值越小,相似度越高,取值为0-64,即汉明距离中,64位的hash值...
    99+
    2024-04-02
  • Linux系统find命令10种使用方法技巧分享
    本篇内容介绍了“Linux系统find命令10种使用方法技巧分享”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、根据文件名或正则表达式匹配...
    99+
    2023-06-13
  • Java 随机数的获得方法(5种)
    1. Math.random() 静态方法 产生的随机数是 0 - 1 之间的一个 double,即 0 ...
    99+
    2023-10-25
    java 开发语言
  • python怎么统计数字出现的次数
    可以使用字典来统计数字出现的次数。首先,遍历数字列表,对于列表中的每个数字,判断它是否已经在字典中存在。如果不存在,则将该数字作为键...
    99+
    2023-10-12
    python
  • 应用生产计划管理系统的方法与技巧
        随着科技和时代发展,生产制造企业同质化竞争日趋严重,个性化需求越来越多。由于传统信息采集模式效率低、不及时、错误多,用户需求无法有效传递到生产、采购等部门,导致生产计划制定时,很难知道生产什么、生产多少...
    99+
    2023-06-05
  • Go语言字符出现次数统计方法详解
    Go语言作为一种快速、高效、并发性良好的编程语言,广泛应用于网络编程、云计算、数据处理等领域。在实际开发中,经常会遇到需要统计字符串中字符出现次数的场景。本文将详细介绍在Go语言中如何...
    99+
    2024-03-13
    go语言 方法解析 字符统计 网络编程
  • Python编程技巧连接列表的八种操作方法
    目录1. 最直观的相加2. 借助 itertools3. 使用 * 解包4. 使用 extend5. 使用列表推导式6. 使用 heapq8. 使用 yield fromPython...
    99+
    2024-04-02
  • JavaScript声明函数的5种方法小结
    目录声明函数的5种方法1.Function声明2.匿名函数3.函数表达式箭头函数5.构造函数哪种方式最好?在编写JavaScript代码中,函数是我们经常会写到的。但是在不同的工程师...
    99+
    2023-02-17
    JavaScript声明函数
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作