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