计算String Python中列表项的出现次数



我正在努力实现这个

string_list = ["red","blue","green"]
text = "This is a string about my favourite colours like red blue and green but blue is the best"
some_function(string_list,text)
Output: [1,2,1]

我如何做到这一点?获得一个将所有出现次数相加的数字(在本例中为4)是没有问题的,但我希望它被string_list项分开。

return [text.count(string) for string in string_list]

可以使用count()函数对字符串中的子字符串进行计数。下面的代码可能有帮助

def get_count(slist,text):
result=[]
for string in slist:
result.append(text.count(string))
return result

string_list = ["red","blue","green"]
text = "This is a string about my favourite colours like red blue and green but blue is the best"
print(get_count(string_list,text))

输出
[1, 2, 1]

这有很长的路要走:

from collections import defaultdict
string_list = ["red","blue","green"]
text = "This is a string about my favourite colours like red blue and green but blue is the best"

def count_occurrences(string_list, text):
counts = defaultdict(int)
for string in text.split():
if string in string_list:
counts[string] += 1
return counts.values()
print(count_occurrences(string_list, text))
dict_values([1, 2, 1])

最新更新