Python count()函数详解

小明 2025-05-04 22:16:39 5

「作者主页」:士别三���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
                    
The End
微信