这是我的作业:
写一个函数,出现次数(字符串,名称),它返回名称字符串字符串中出现的名称数。
例如,出现次数('Alojz,Samo,Peter,Alojz,Franci','Alojz')应该返回2.
这是我的解决方案:
def number_of_occurence(string,name):
m = 0
l = string.split(',')
for i in l:
if i == name:
m+=1
return m
这给出了错误的答案,因为它不会检查列表的每个元素。有人可以帮忙找错吗?
答案 0 :(得分:1)
你可以使用collections.Counter
from collections import Counter
l = (word.strip() for word in string.split(','))
c = Counter(l)
return c[name]
编辑
OR
您可以使用正则表达式:
def count_naem(string, name):
return len(re.findall("{},".format(name), string+","))
答案 1 :(得分:0)
你可以在分割字符串后剪掉空格。
使用strip()
从双方剥离whitespaces
。你可以双方whitespaces
。
这可能会对您有所帮助:
def number_of_occurence(string,name):
m = 0
l = string.split(',')
for i in l:
if i.strip() == name:
m+=1
return m
如果您的字符串中有tabs \t
,newline \n
或escape sequence \r
,那么您可以使用strip(' \t\n\r)
代替strip()
。