Counter统计每个字符出现的次数

Excel(函数篇):COUNTIF与CONUTIFS函数、SUMIF与SUMIFS函数、ROUND函数、MATCH与INDEX函数、混合引用与条件格式 阅读详情

在python的API中,提到了Counter,它具有统计的功能

下面是我做的demo:

1.统计自定义字符串中每个字符出现的次数

2.读取一个文件,把文件中的内容转化为字符串,统计该字符串中每个字符串出现的次数

运行效果:

测试的文件:

==================================

代码部分:

==================================

复制代码
 1 #python counter object
 2 
 3 from collections import *
 4 import os
 5 
 6 def get_counter():
 7     '''get the Counter object'''
 8     return Counter()
 9 
10 def str_to_list(s):
11     '''
12     a string covert to list,
13     return an empty list if the string equal None
14     '''
15     if s != None:
16         return [x for x in s]
17     else:
18         return []
19 
20 def counter(c, l):
21     '''统计列表l中每个单词的出现次数,最后返回一个Counter对象'''
22     for word in l:
23         c[word] += 1
24     return c
25 
26 def get_file_str(path):
27     '''打开指定的文件,并且把文件中的内容以字符串的形式返回'''
28     if os.path.exists(path):
29         temp_str = ''
30         with open(path, 'r') as pf:
31             for line in pf:
32                 temp_str += line
33             return temp_str
34     else:
35         print('the file [{}] is not exist!'.format(path))
36 
37 def test_str():
38     #使用自定义字符串测试
39     #统计自定义字符串中每个字符出现的次数
40     cnt = get_counter()
41     temp_str = 'hello,i\'m Hongten,welcome to my space!'
42     temp_list = str_to_list(temp_str)
43     cnt = counter(cnt, temp_list)
44     print(cnt)
45 
46 def test_file():
47     '''
48     读取一个文件,把文件中的内容转化为字符串
49     统计该字符串中每个字符串出现的次数
50     '''
51     cnt = get_counter()
52     temp_path = 'c:\\temp.txt'
53     temp_str = get_file_str(temp_path)
54     temp_list = str_to_list(temp_str)
55     cnt = counter(cnt, temp_list)
56     print(cnt)
57     
58 def main():
59     test_str()
60     print('#' * 50)
61     test_file()
62 
63 if __name__ == '__main__':
64     main()
复制代码

Python标准库——collections模块的Counter类

更多 11

最近在看一本名叫《Python Algorithm: Mastering Basic Algorithms in the Python Language》的书,刚好看到提到这个Counter类(P84的Listing 4.6下的Tip)。

1.collections模块

collections模块自Python 2.4版本开始被引入,包含了dict、set、list、tuple以外的一些特殊的容器类型,分别是:

  • OrderedDict类:排序字典,是字典的子类。引入自2.7。
  • namedtuple()函数:命名元组,是一个工厂函数。引入自2.6。
  • Counter类:为hashable对象计数,是字典的子类。引入自2.7。
  • deque:双向队列。引入自2.4。
  • defaultdict:使用工厂函数创建字典,使不用考虑缺失的字典键。引入自2.5。

文档参见:http://docs.python.org/2/library/collections.html。

2.Counter类

Counter类的目的是用来跟踪值出现的次数。它是一个无序的容器类型,以字典的键值对形式存储,其中元素作为key,其计数作为value。计数值可以是任意的Interger(包括0和负数)。Counter类和其他语言的bags或multisets很相似。

2.1 创建

下面的代码说明了Counter类创建的四种方法:

2.2 计数值的访问与缺失的键

当所访问的键不存在时,返回0,而不是KeyError;否则返回它的计数。

2.3 计数器的更新(update和subtract)

可以使用一个iterable对象或者另一个Counter对象来更新键值。

计数器的更新包括增加和减少两种。其中,增加使用update()方法:

减少则使用subtract()方法:

2.4 键的删除

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

2.5 elements()

返回一个迭代器。元素被重复了多少次,在该迭代器中就包含多少个该元素。所有元素按照字母序排序,个数小于1的元素不被包含。

2.6 most_common([n])

返回一个TopN列表。如果n没有被指定,则返回所有元素。当多个元素计数值相同时,按照字母序排列。

2.7 fromkeys

未实现的类方法。

2.8 浅拷贝copy

2.9 算术和集合操作

+、-、&、|操作也可以用于Counter。其中&和|操作分别返回两个Counter对象各元素的最小值和最大值。需要注意的是,得到的Counter对象将删除小于1的元素。

3.常用操作

下面是一些Counter类的常用操作,来源于Python官方文档

本文内容遵从CC3.0版权协议,转载请注明:转自Pythoner

本文链接地址:Python标准库——collections模块的Counter类


统计字符串每个单词出现的次数 用for循环 def word_count(s): split_list = s.split() dict_result = {} #遍历列表,判断每个词是否在字典的键中,如果存在则键值加一,不存在设为1 for word in split_list: if word not in dict_result.keys(): di... 阅读详情

相关推荐

java统计字符串出现次数算法--StringCounter(算法源码)

package com.hexiang.utils.tools; import java.util.TreeMap; import java.util.regex.Matcher; import java.util.regex.Pattern; public class StringCounter { /** * 正则统计字符串出现次数 * * @param source * @param regexNew * @return int */ public static int finder(String source, String regexNew) { String regex = "[a-zA-Z]+"; if (regexNew != null && !regexNew.equals("")) { regex = regexNew; } Pattern expression = Pattern.compile(regex); Matcher matcher = expression.matcher(source); TreeMap<Object, Integer> myTreeMap = new TreeMap<Object, Integer>(); int n = 0; Object word = null; Object num = null; while (matcher.find()) { word = matcher.group(); n++; if (myTreeMap.containsKey(word)) { num = myTreeMap.get(word); Integer count = (Integer) num; myTreeMap.put(word, new Integer(count.intValue() + 1)); } else { myTreeMap.put(word, new Integer(1)); } } return n; } }

python的counter频次统计函数

函数会接受一个可迭代对象(比如列表、字符串、元组等)作为输入,返回一个字典,其中包含每个元素出现的次数。要使用Python的Counter频次统计函数,应该引入。模块,可以使用其中的。

qq_27487739的博客 435

【医学图像分割网络】之Res U-Net网络PyTorch复现

【医学图像分割网络】之Res U-Net网络PyTorch复现 1.内容 U-Net网络算是医学图像分割领域的开山之作,我接触深度学习到现在大概将近大半年时间,看到了很多基于U-Net网络的变体,后续也会继续和大家一起分享学习。这次分享ResNet+U-Net的一个改进版,ResNet本身就是一个十分优秀的backbone,目前应用仍然十分广泛,我们融合进ResNet后,我们就可以使得U-Net进行迁移学习了。 1.将Resnet作为encoder替换U-Net原始结构 2.U-Net提出时间较早,当时还没

qq_39071739的博客 1万+

COUNTIFS函数完全指南:Excel多条件计数从入门到精通

摘要:本文全面解析Excel中COUNTIFS函数的多条件计数应用。基础部分讲解函数语法(最多127个AND条件)及与COUNTIF的区别。实战案例包括年级成绩统计、销售多维分析、模糊匹配等场景。高级技巧涵盖数组公式、多维度去重(使用1/COUNTIFS求和法)和OR逻辑实现方案。针对性能优化提出精确范围引用、合理使用通配符等建议,并指出区分大小写等局限的替代方案。文章强调从基础到精通的渐进学习路径,指出COUNTIFS的核心价值在于实现多维度数据精准筛选,是平衡功能与易用性的数据分析利器。(149字)

深耕计算机专业知识与技术。 3740

单细胞双胞过滤-scrublet安装

pip install scrublet ----use-pep517有如下报错,分析可知安装annoy时不会自动更新gcc的版本,centos默认是4.8.5。pip install scrublet ----use-pep517 仍然报错,但似乎不影响使用,提示Successfully installed。打开终端,进入Python环境,输入以下代码,查看Python安装位置。暂时还没尝试是否存在问题,如果存在问题,降级scrublet版本。包的开发依赖的是比较低版本的numpy,会用到。

hzau_t的博客 792

EEGLAB数据预处理基本流程GUI实操指南

按钮,会出现如上图所示的长条形对话框,方框里面是所有电极的名称,这时将需要的剔除的电极选择上,如上图,我选择了 VEOG这个电极(该电极表示是垂直眼电),然后点“OK”,在弹出的对话框中自行确定是否需要修改命名。坏导是指在数据采集时,由于各种原因(如,电极本身问题或阻抗不好等)导致数据记录有问题,但是在后期又特别想要该通道的数据,那么就可以利用插值的方法进行——利用该导联周边的几个电极点的均值作为该导的数据。上图的图是通过IClabel的工具箱进行自动判断的,可以帮助自动识别出哪些是Eye的成分。

fdgdf5535的博客 6393

【excel函数使用】

excel常用函数

qq_52764364的博客 2163

多模态模型评测神器 | OpenCompass MMBench 了解一下!

MMBench 是 OpenCompass 研究团队自建的视觉语言模型评测数据集,可实现从感知到认知能力逐级细分评估。研究团队从互联网公开信息与权威基准数据集采集约 3000 道单项选择题 ,覆盖目标检测、文字识别、动作识别、图像理解、关系推理等 20 个细粒度评估维度。

OpenCompass的博客 7825

【Python】python使用Counter()统计列表中字符出现的频率(次数)

文件对象有iter、next方法,所以它是一个可迭代对象,可以用for循环遍历。我们可以遍历文件获得每一行字符,再遍历每一行,获得每个字符,将字符放入列表,然后统计每个字符出现的频率。以统计文件中字符的频率为例,可以通用到其他应用中去。案例:统计字母出现的频率。

小明2766的博客 3058

计组实验4 控制冒险与分支预测

目录前言实验内容背景知识分支预测技术⭐阻塞周期计算方法不开启 BTB开启 BTBpart 1 矩阵乘法与优化未开启 BTB 的分析开启 BTB 的分析part 2 设计代码使 BTB 无效part 3 循环展开优化矩阵乘法未开启 BTB开启 BTB结束语结论 前言 上一篇博客:计组实验3 mips冒险之流水线冒险 摸了半个月了。。。咕咕咕 今天来写计组实验 4 这个实验非常简单,就是有点难。 这个实验比较容易算错,或者是被模拟器出人意料的结果搞的神神叨叨的,所以今天来记录并且详细分析该实验。 注:请务必阅

AKGWSB 's blog 5666

UG\NX二次开发 找不到指定的dlx文件(Specified Dlx file not found)

有群友问:用Ctrl+U运行的时候就报错,找不到指定的dlx文件Specified Dlx file not found。怎么处理。

王牌飞行员_里海的博客 1129

利用collections库的Counter方法统计字符串每个字符出现的次数”kjalfj;ldsjafl;hdsllfdhg;lahfbl;hl;ahlf;h”

利用collections库的Counter方法统计字符串每个字符出现的次数”kjalfj;ldsjafl;hdsllfdhg;lahfbl;hl;ahlf;h” from collections import Counter a = "kjalfj;ldsjafl;hdsllfdhg;lahfbl;hl;ahlf;h" res = Counter(a) print(res) Coun...

托尼stark的博客 1512

YOLOv11目标检测模型性能评价指标详解,涉及混淆矩阵、F1-Score、IoU、mAP、参数量、计算量等,一文打尽所有评价指标

本文主要讲解的是计算机视觉网络模型的性能评价指标,这是每一篇论文中都需要展示的内容。熟悉每一个评价指标也能够帮助我们在训练和改进模型过程中,更好的观察模型的变化效果。

Limiiiing的博客 8410

Python生成1000个随机字符的字符串,统计每个字符的出现次数(choices函数和Counter的使用)

ascii_letters生成大小写字母 digits生成数字 import string from random import choices s = ''.join(choices(string.ascii_letters + string.digits, k=1000)) print("string: ", s) char_count = dict(); for i in s: char_count[i] = char_count.get(i, 0) + 1 print(char_count)

苦涩精灵的博客 2万+

linux内核协议栈 TCP选项之SACK选项概述

目录 1SACK概述 1.1 SACK允许选项 1.2 SACK选项 2SACK允许选项的发送 2.1 SYN段发送 2.2 接收SYN段 2.2.1 struct tcp_options_received 2.2.2 tcp_parse_options() 2.3 发送SYN+ACK段 3D-SACK 1SACK概述 标准的TCP确认机制中,如果发送方发送了0-1000序号之间的数据,接收方收到了0-100、300-1000,那么接收方只能向发送方确认101,这时发送方会重...

2731

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

【Python】使用Counter方法统计字符串每个字符出现的次数

from collections import Counter a = "a;lskdh!`foiegn``as;ldnf,asd.121,2ljladsfkja`sdijfhaosjlfd,gjsdfg.as.dl" b = Counter(a) print(b) ------------------------------- Counter({'s': 8, 'd': 8, 'a': 7...

高岩 is me 5278

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Python 统计字符串中每个单词出现的次数

统计字符串中的每个单词的个数 假定给定一 段字符串,不包括特殊字符,比如,,。等符号,如何统计每一个单词的个数? 有三种方式,三种方法第一步都是将字符串切割成单词列表,不同点在于后面的处理。下面, 演示下这三种方式。 第一种: from collections import Counter ...

zsk_john的技术分享专用博客 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Python的Couter使用,计算字符串中每个单词出现的次数

文章目录一、统计字符串每个元素出现的次数 一、统计字符串每个元素出现的次数 示例:计算字符串中"i love python,python is beautiful"出现2次的第1个字符。 思路: 1、使用Counter统计字符串中每个元素出现的次数 2、转换成字典类型,去遍历这字典里的数据 3、把出现某个次数的元素统一添加到一个空列表 4、从取到的列表中进行索引取值,把需要的字符元素取出来 代码如下(示例): from collections import Counter str = "i love pyt

weixin_44688529的博客 1377

python 统计字符串里各个字符出现的次数

from collections import Counter def austin_test(): c = Counter() for i in 'programming': c[i] = c[i] + 1 print c if __name__ == '__main__': austin_test()   输出结果为:      ...

遇见的博客 1万+

使用 Python 字典统计字符串中每个字符的出现次数

字典中的键必须是不可变类型(如字符串、数字或元组),而值可以是任意类型。字典提供了高效的查找、插入和删除操作,是 Python 中非常常用的数据结构之一。本文将详细介绍如何使用 Python 字典来统计字符串中每个字符的出现次数,并提供详细的代码示例。我们可以使用普通的字典来统计字符串中每个字符的出现次数。遍历字符串中的每个字符,并在字典中记录每个字符的出现次数。无论使用哪种方法,最终的输出结果都是一个字典,其中键是字符,值是该字符在字符串中出现的次数。在处理字符串时,有时我们需要统计每个字符的出现次数。

licy__的博客 1421

python统计字符串中每个单词出现的次数_Python统计一个字符串中每个字符出现了多少次的方法【字符串转换为列表再统计】...

本文实例讲述了Python统计一个字符串中每个字符出现了多少次的方法。分享给大家供大家参考,具体如下:#coding=utf-8#统计一个字符串中的每一个字符出现了多少次#定义一个字符串str = 'abbcccdddd'#在字符串的每一个字符之间插入一个空格组成一个新的字符串str = ' '.join(str)#打印新的字符串看看print('str = ',str)#将新字符串按空格分割成一...

weixin_39713833的博客 1312

python计算字符在字符串中出现的次数

python计算所有字符在字符串中各自出现的次数 1 from collections import Counter str='1212jisajikodsakdokoakso' counts=Counter(str) print(counts) 2 message='Thdsaa' count={} for character in message: count.setdefau...

李孟笛的博客 6238

统计字符串中各元素的个数

d = 'abcdakkawu' l = {} # 创建一个空字典,键为元素,值为该元素出现的次数 for i in set(d): # 通过集合去重,知道里面有哪些元素 l[i] = d.count(i) # 添加字典,键为元素,值为该元素在字符串中的个数 print(l) ...

weixin_44675383的博客 3246

Python中统计字符在字符串中出现的次数

统计全部字符出现次数 使用collections中的Counter from collections import Counter ​ st="sjdfhsdkfshdfjkgafdha" ​ print(Counter(st)) 统计单个字符出现次数 使用count统计单个字符出现次数 st="sjdfhsdkfshdfjkgafdha" ​ print(st.count('a')) ...

愤怒的小兵 3617

python统计文件中每个单词出现的次数_python统计文本中每个单词出现的次数

.python统计文本中每个单词出现的次数:#coding=utf-8__author__ = ‘zcg‘import collectionsimport oswith open(‘abc.txt‘) as file1:#打开文本文件str1=file1.read().split(‘ ‘)#将文章按照空格划分开print "原文本:\n %s"% str1print "\n各单词出现的次数:\n ...

weixin_39654322的博客 3197

使用collection.Counter实现统计简化

本篇博客详细介绍了使用collections.Counter方法完成统计任务

weixin_57506268的博客 604
上一篇: 外排序
下一篇: externalsorting
screaming
博客等级 码龄19年 60粉丝 6原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值