「作者主页」:士别三日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))

输出:

01

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'))

输出:

33

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))

输出:

111