Python count()函数详解

news2024/11/24 13:44:37

「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》

count

  • 1、指定搜索位置
  • 2、参数为负数
  • 3、列表的count()
  • 4、元祖的count()
  • 5、其他数据类型的count()
  • 6、布尔类型

count() 是Python的内置函数,可以「统计」字符串里指定「字符」或指定字符串出现的「次数」

语法

String.count( str, start, end )

参数

  • str :(必选)指定字符或字符串
  • start :(可选,整型)开始的索引,默认0
  • end :(可选,整型)结束的索引,默认最后一个位置

返回值

  • int类型,返回出现的次数

实例:统计字符 ‘a’ 在字符串 ‘abcabcabc’ 中出现的次数

print('abcabcabc'.count('a'))

输出:

3

在字符串中搜索时,搜索的内容只能是「字符串类型」,否则会报错 TypeError: must be str

在这里插入图片描述

1、指定搜索位置

start end 参数可以设置搜索的「范围」,含头不含尾 [start, end)

start 参数必须是「整型」「不设置」,默认值是0
end 参数必须是「整型」「不设置」,默认值是 len(string),字符串的长度,也就是最后一个位置

count() 的参数不通过参数名来指定:

  • 如果只给「一个参数」,就默认赋值给str参数
  • 如果只给「两个参数」,就按顺序赋值给str 和 start 参数
  • 如果给了「三个参数」,就按顺序赋值给str 、start、end参数

实例:从第3个字符开始,搜索字符 ‘a’ 在字符串 ‘abcabcabc’ 中出现的次数

print('abcabcabc'.count('a', 3))

输出:

2

实例:在字符串的3~6位置,搜索字符 ‘a’ 在字符串 ‘abcabcabc’ 中出现的次数

print('abcabcabc'.count('a', 3, 6))

输出:

1

2、参数为负数

start end 参数可以为「负数」,同样含头不含尾[-start, -end)

start 为负数时,意思是从「右边」第几个位置「开始」,这个位置不是索引,从1开始计算。

print('aaabbbccc'.count('a', -6))
print('aaabbbccc'.count('a', -7))

输出:

0
1

end 为负数时,意思是从「右边」第几个位置「结束」,同样是从1开始计算。

比如下面这个案例,设置范围从右边第6个开始,到右边第1个结束

print('aaabbbccc'.count('c', -6, -1))

输出:

2

当负数超过字符串的「长度」时,会从0开始计算。

比如字符串只有8个字符,但start 参数的值为-10,count()就会让它变得 “不生效”。

print('aaabbbccc'.count('c', -10))
print('aaabbbccc'.count('c'))

输出:

3
3

3、列表的count()

列表也有count() ,可以统计指定「元素」在列表中出现的「次数」,虽然函数名字一样,但用法却不同

语法

list.count( element )

参数

  • element:需要统计的元素

返回值

  • int类型,返回元素出现的次数

实例:统计元素 1 在列表中出现的次数

print([1, 2, 1, 2].count(1))

输出:

2

4、元祖的count()

元组相当于只读列表,元组的 count() 和 列表的 count() 用法相同

语法

tuple.count( element )

参数

  • element:需要统计的元素

返回值

  • int类型,返回元素出现的次数

实例:统计元素 1 在元组中出现的次数

print((1, 2, 1, 2).count(1))

输出:

2

5、其他数据类型的count()

不同数据类型的 count() 语法是不一样的:

字符串、字节串、字节数组的count()可以指定开始和结束的位置;
列表、元组、等差数列的count()只能搜索指定的元素。

  • 字符串:string.count( str, start, end )
  • 字节串:bytes.count( str, start, end )
  • 字节数组:bytearray.count( str, start, end )
  • 列表:list.count( element )
  • 元组:tuple.count( element )
  • 等差数列:range.count( element )

6、布尔类型

布尔类型是特殊的,True可以匹配到1,False可以匹配到0,具体的可以参考以下案例:

print((True, False).count(True))
print((True, False).count(1))
print((True, False).count(0))

输出:

1
1
1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/709618.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

以太网OSI参考模型(四)

目录 OSI模型 一、物理层 二、数据链路层 三、网络层 四、传输层 五、会话层 六、表示层 七、应用层 OSI模型 OSI七层模型,是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)1984年联合制定的开放系统互联参考模型,为开放式互联信息系统提供…

06-C++学习笔记-指针的定义与使用

指针是C中非常重要的概念,它允许直接访问内存地址,并通过地址操作变量。本篇笔记将介绍指针的定义与使用方法,以及指针与数组的关系。 1️⃣ 指针的引入 指针的引入是为了解决需要直接访问内存地址的情况。通过指针,可以间接访问…

Android TextView 展示特殊字符高度变高问题解决

背景 #在我们的项目中,展示文字是很常见的需求,但是在线上展示中发现,有些信息是特殊字符展示的,而且这些字符的高度会导致TextView的高度变高(与正常字符比)。 效果如下: 很明显&#xff0…

森云+优控配置摄像头进行录像和拍照测试

森云和优控配置摄像头进行录像和拍照测试 现在其实已经基本上明确自己的环境了,就是在ubuntu下的pycharm和vscode,然后下载conda(但是不要默认的base环境,只要conda create -n xxx 这样的基本功能就好了) 显示opencv…

AI绘画StableDiffusion:云端在线版使用笔记分享(Kaggle版)

玩AI绘画(SD),自己电脑配置不够?今天给大家介绍一下如何baipiao在线版AI绘画StableDiffusion。 Kaggle 是世界上最大的数据科学社区,拥有强大的工具和资源,可帮助您实现数据科学目标。(每周可以…

【MySQL学习笔记】(六)MySQL基本查询

表的增删查改 1 create1.1 单行数据全列插入1.2 多行数据 指定列插入1.3 插入否则更新1.4 替换 2 retrieve2.1 select列2.1.1 全列查询2.2.2 指定列查询2.2.3 查询字段为表达式2.2.4 为查询结果指定别名2.2.5 结果去重 2.2 where 条件2.2.1 null的查询 2.3 结果排序2.4 筛选分…

如何搭建一个实时对话转录应用(类似zoom中的文本转录功能)并部署到 Heroku

文章目录 应用搭建Assembly AI文件夹结构前端搭建HTMLindex.js 后端搭建server.jspackage.json Heroku 部署创建账号创建Heroku应用上传仓库 应用搭建 应用基于 html javascript使用的第三方 API 是 Assembly AI 提供的 Assembly AI 要使用 real-time transcript 功能&…

ChatGPT:为教育创新提供五大机遇

随着智能技术的不断发展,ChatGPT在教育场景中的创新价值可能比我们能够意识到的还要多。比如它可以自动处理作业、在线答疑,可以辅助语言学习、实时沟通,甚至还可以用于评估诊断、科学研究。国内外关于利用ChatGPT实现教育创新的场景描绘已经…

【Matplotlib】多级雷达图绘制

一、实例1:个人能力画像雷达图 # -*- coding: utf-8 -*- """ Created on Sat Jul 1 20:52:54 2023author: zcq """import numpy as np import matplotlib.pyplot as plt import matplotlibmatplotlib.rcParams[font.family]SimHei …

灯夹三角架

2个卡箍1个无头螺丝拼1个灯夹 还需要1个三脚架固定 difference(){union(){translate([18,-7,0])cube([14,14,1]);translate([-7,18,40])cube([14,14,1]);translate([-7,-32,40])cube([14,14,1]);points [[7,-32,40], //0[18,-7,0], //1[18,7,0], //2[7,-18,40], //3[7,…

【C++面向对象】足球比赛数据统计系统(面向对象练习)

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化 👉荣__誉👈:阿里云博客专家博主、51CTO技术博主 &#x…

【IoT】硬件产品经理:从入门到精通(卫朋)

目录 介绍 出版过程 CSDN学院 下单方式 个人介绍 介绍 2023 年已经过去了一半。 作为阶段小目标,这本书也如期发布了。 先来看看封面,这里也要感谢编辑们的辛苦付出。 ​ 出版过程 出版本身其实是一件比较严肃的事情。 过去的一年多时间&#…

进程的基本概念解读

目录 什么是进程 PCB OS中用于管理控制的数据结构 进程控制块PCB的作用 进程控制块中的信息 前趋图 背景 作用 表示 示例 程序的顺序执行 程序顺序执行的特征 程序的并发执行 程序的并发执行的特征 例题解读 进程的三种基本状态 进程的三种状态之间的转换 进…

linux下RabbitMQ的使用

文章目录 linux下RabbitMQ的使用首先docker启动网页打开网址:用户名和密码登录创建exchanges:创建Queues增加Queues的Bind linux下RabbitMQ的使用 首先docker启动 su rootsudo docker run -d --hostname rabbitsvr --name rabbit -p 5672:5672 -p 15672:15672 -p …

Uniform的理解

Uniform:一种从Cpu的应用,向Gpu中的着色器发送数据的方式,它是全局的,可以被任意着色器程序在任意阶段访问。 若声明了一个Uniform却没用过,编译器会默认移除这个变量,导致编译出的版本并不包含它&#xff…

配置本地的application-dev.yml读取nacos上面的配置

我想配置本地的application-dev.yml读取nacos上面的配置,我应该在配置文件里怎么写?并且在nacos里怎么建立 在本地的application-dev.yml文件中,您可以使用Spring Cloud Nacos来读取Nacos上的配置。以下是在配置文件和Nacos中设置的步骤&…

servlet+JSP与SpringBoot+Vue项目交互——servlet访问Vue页面

问题 servletJSP与SpringBootVue项目交互——servlet访问Vue页面 详细问题 笔者前一段时间开发一个项目,使用的技术框架是servletJSP,现阶段开发的项目技术框架为SpringBootVue,笔者现在需要输入servletJSP的路由地址(登录页面…

3DTiles Next研究

3DTiles Next是Cesium发布的下一代3DTiles规范。 元数据 在这一代规范中,更重视元数据(metadata,如建筑物ID或者类型等),通过这些元数据可以对3dtiles进行样式调整或者过滤显示。 关于详细的元数据规范介绍看这里。 …

Spark SQL生产优化经验--任务参数配置模版

大表扫描 特殊case说明:当任务存在扫event_log表时需注意,若对event_log表进行了过滤,且过滤比很高,如下图的case,input为74T,但shuffle write仅为3.5G,那么建议提高单partition的读取数据量&a…

Redis数据库高可用之RDB和AOF持久化

Redis数据库高可用、RDB和AOF持久化、性能管理 一、Redis 高可用二、Redis 持久化Ⅰ、持久化的功能Ⅱ、两种持久化方式Ⅲ、RDB 和 AOF 的区别 三、RDB 持久化Ⅰ、触发条件Ⅱ、执行流程 四、AOF持久化Ⅰ、开启AOFⅡ、执行流程 五、RDB 和 AOF 的优缺点Ⅰ、RDB 持久化Ⅱ、AOF 持久…