[oeasy]python096_列表_计数函数_count

简介: 本教程详细介绍了Python中列表的计数方法`count`,包括其基本用法、与`len`函数的区别,以及如何结合索引操作查找和删除特定元素。同时探讨了字符串对象的`count`方法,并通过实例演示了如何统计字符出现次数。

列表 - 计数 - count

回忆

  • 上次研究了python文件运行时的系统参数
  • sys.argv
  • 通过sys.argv就可以接收从命令行来的参数了
  • 可以通过索引来获得第n个参数
  • 这就是索引(index)的作用

  • 处理了可能出现的
  • IndexError
  • ValueError

  • 列表(list)还有什么方法呢?🤔

索引用法

clist = list("oeasyo2zo3z")
clist
  • 总共有3个'o'

index

clist.index("o")
  • 我们可以通过index方法
  • 得到列表中
  • 第1个"o"的位置

  • 那如何 才能 得到
  • 第2个、第3个"o"的位置呢?

逐个找索引

first = clist.index("o")
first
second = clist.index("o",first + 1)
second
third = clist.index("o",second + 1)
third
  • 逐个往后

序号 位置
第0个 下标0
第1个 下标5
第2个 下标8
  • 还能继续找吗?

继续查找

fourth = clist.index("o", third + 1)
  • 如果此时
  • 再从9开始
  • 去查找"o"的索引

  • 就找不到了
  • 总共有3个"o"
  • 有什么更快的方法吗?

计数方法 count

  • 先统计一下有多少个'o'
clist = list("oeasyo2zo3z")
clist.count("o")
  • 总共3个

  • 这个count是什么意思呢?

帮助手册

help(list.count)
  • 统计参数出现的次数

  • count 是 计数函数
  • len 也是

  • 有什么区别吗?

len和count

len(clist)
clist.count("o")
  • 结果

len count
容器总长度 指定列表项的 数量
builtins的内置函数 列表类对象的 方法
列表 作为 参数 列表对象 作为 主调对象
  • append 对于 count结果有影响吗?

append之后

clist = list("oeasy")
clist.count("o")
clist.append("o")
clist.count("o")
  • append之后
  • count计数结果会变化

  • remove呢?

remove

clist = list("oeasy")
clist.count("o")
clist.remove("o")
clist.count("o")
  • 删除 对 计数
  • 也会有影响

  • 问题是remove
  • 每次都 从开始位置 删
  • 先删 第1个"o"
  • 我想让他
  • 先删除最后一个"o"
  • 怎么办?

尝试找到位置

clist = list("oeasyo2z")
count = clist.count("o")
pos = 0
for num in range(count):
    pos = clist.index("o", pos)
    pos = pos + 1
print(pos)
  • 先找到最后o的索引序号

  • 位置找到了
  • 第6个 列表项
  • 其实 索引号 应该 是 5

修改代码

clist = list("oeasyo2z")
count = clist.count("o")
i = 0
for num in range(count):
    i = clist.index("o", i)
    i = i + 1
i = i - 1
print(i)
  • 这样可以得到最后一个o的索引值

  • 找到了 之后
  • 怎么删除呢?

如何删除

  • 我要删除第5个列表项
  • remove方法没有start参数

  • 怎么办??

先替换再删除

  • 找到了这个元素下标为6
  • 就先替换了
  • 然后再删除
clist[5] = "sth special!"
clist
clist.remove("sth special!")
clist
  • 确实删除成功

  • 还有更快的办法吗?

询问

clist = list("oeasyo2z")
del clist[5]
print(clist)

执行

  • 确实可以👍

  • 回忆del

del

  • del 是
  • 关键字
  • keyword
a
a = 0
a
del a
a
  • 以前是删除 声明过的变量

  • 现在是 删除 列表中 被索引的列表项
del clist[5]
  • 除了 列表类 有 count方法之外
  • 字符串也有count方法吗?

字符串对象的count方法

s = "oeasyo2z"
s.count("o")
s.count("easy")
  • 确实也有

查询帮助手册

help(str.count)
  • 帮助手册和列表的差不多

练习

板凳宽,扁担长,板凳比扁担宽,扁担比板凳长,扁担要绑在板凳上,板凳不让扁担绑在板凳上,扁担偏要板凳让扁担绑在板凳上。
  • 扁担 出现次数多?
  • 还是 板凳 出现次数多?

  • 我们去总结一下

总结

  • 这次研究了 计数函数count
  • 统计 列表中 某个列表项 出现次数
  • 统计 某字符串 在 字符串中 出现的次数
  • count与len不同
  • count统计 列表项出现次数
  • len统计 列表的长度

相关文章
|
8月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
486 2
|
8月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
1507 1
|
8月前
|
Java 数据处理 索引
(numpy)Python做数据处理必备框架!(二):ndarray切片的使用与运算;常见的ndarray函数:平方根、正余弦、自然对数、指数、幂等运算;统计函数:方差、均值、极差;比较函数...
ndarray切片 索引从0开始 索引/切片类型 描述/用法 基本索引 通过整数索引直接访问元素。 行/列切片 使用冒号:切片语法选择行或列的子集 连续切片 从起始索引到结束索引按步长切片 使用slice函数 通过slice(start,stop,strp)定义切片规则 布尔索引 通过布尔条件筛选满足条件的元素。支持逻辑运算符 &、|。
407 0
|
8月前
|
开发者 Python
Python列表推导式:优雅与效率的完美结合
Python列表推导式:优雅与效率的完美结合
555 116
|
8月前
|
大数据 开发者 Python
Python列表推导式:简洁与高效的艺术
Python列表推导式:简洁与高效的艺术
488 109
|
8月前
|
Python
Python列表推导式:简洁与高效的艺术
Python列表推导式:简洁与高效的艺术
573 119
|
8月前
|
开发者 Python
Python列表推导式:优雅与效率的完美融合
Python列表推导式:优雅与效率的完美融合
416 104
|
8月前
|
Python
Python列表推导式:优雅与效率的艺术
Python列表推导式:优雅与效率的艺术
435 99
|
8月前
|
数据处理 Python
解锁Python列表推导式:优雅与效率的完美融合
解锁Python列表推导式:优雅与效率的完美融合
498 99
|
8月前
|
开发者 Python
Python列表推导式:一行代码的艺术与力量
Python列表推导式:一行代码的艺术与力量
587 95

推荐镜像

更多