📌  相关文章
📜  Python|计算字符串中某个字符的出现次数

📅  最后修改于: 2022-05-13 01:54:47.183000             🧑  作者: Mango

Python|计算字符串中某个字符的出现次数

给定一个字符串,任务是计算该字符串中单个字符出现的频率。这种对字符串的特殊操作在许多应用程序中非常有用,例如删除重复项或检测不需要的字符。

方法#1:朴素的方法

迭代该特定字符的整个字符串,然后在遇到特定字符时增加计数器。

# Python3 code to demonstrate 
# occurrence frequency using 
# naive method 
  
# initializing string 
test_str = "GeeksforGeeks"
  
# using naive method to get count 
# counting e 
count = 0
  
for i in test_str:
    if i == 'e':
        count = count + 1
  
# printing result 
print ("Count of e in GeeksforGeeks is : "
                            +  str(count))

输出 :

Count of e in GeeksforGeeks is : 4

方法 #2:使用count()

使用count()是Python中获取任何容器中任何元素的最常规方法。这很容易编码和记住,因此很受欢迎。

# Python3 code to demonstrate 
# occurrence frequency using 
# count()
  
# initializing string 
test_str = "GeeksforGeeks"
  
# using count() to get count 
# counting e 
counter = test_str.count('e')
  
# printing result 
print ("Count of e in GeeksforGeeks is : "
                           +  str(counter))

输出 :

Count of e in GeeksforGeeks is : 4

方法 #3:使用collections.Counter()

这是在Python中的任何容器中获取元素出现次数的鲜为人知的方法。这也执行类似于上述两种方法的任务,只是不同库的函数,即集合。

# Python3 code to demonstrate 
# occurrence frequency using 
# collections.Counter()
from collections import Counter
  
# initializing string 
test_str = "GeeksforGeeks"
  
# using collections.Counter() to get count 
# counting e 
count = Counter(test_str)
  
# printing result 
print ("Count of e in GeeksforGeeks is : "
                       +  str(count['e']))

输出 :

Count of e in GeeksforGeeks is : 4

方法 #4:使用 lambda + sum() + map()

Lambda 函数以及sum()map()可以实现计算字符串中特定元素的总出现次数的特定任务。这使用sum()来总结使用map()获得的所有事件。

# Python3 code to demonstrate 
# occurrence frequency using 
# lambda + sum() + map()
  
# initializing string 
test_str = "GeeksforGeeks"
  
# using lambda + sum() + map() to get count 
# counting e 
count = sum(map(lambda x : 1 if 'e' in x else 0, test_str))
  
# printing result 
print ("Count of e in GeeksforGeeks is : "
                            +  str(count))

输出 :

Count of e in GeeksforGeeks is : 4


方法#5:使用re + findall()

正则表达式可以帮助我们完成很多与字符串相关的编码任务。它们还可以帮助我们完成在字符串中查找元素出现的任务。

# Python3 code to demonstrate 
# occurrence frequency using 
# re + findall()
import re
  
# initializing string 
test_str = "GeeksforGeeks"
  
# using re + findall() to get count 
# counting e 
count = len(re.findall("e", test_str))
  
# printing result 
print ("Count of e in GeeksforGeeks is : "
                            +  str(count))

输出 :

Count of e in GeeksforGeeks is : 4