gpt4 book ai didi

python - 如何计算 Python 字符串中列表中每个项目的出现次数?

转载 作者:行者123 更新时间:2023-12-01 00:31:58 25 4
gpt4 key购买 nike

假设我有以下列表。

food_list = ['冰淇淋'、'苹果'、'煎饼'、'寿司']

我想在以下字符串中找到该列表中的每个项目。

my_str = 'I had pancake for breakfast this morning, while my sister ate some apples. I brought one apple and ate it on my way to work. My coworker was having his birthday today, and he gave us free ice cream. It was the best ice cream I had this year.'

my_str = my_str.lower()

我想计算字符串中的项目数。

冰淇淋:2,苹果:1,煎饼:1,寿司:0

请注意,苹果仅计算一次,因为 apples 不应计算在内。我不可能按空间分割它,因为有诸如冰淇淋之类的东西。

我正在考虑用某些东西替换列表中的单词并稍后计算,但它非常慢(当应用于更大的数据时)。我想知道是否有更好的解决方案。

for word in food_list:
find_word = re.sub(r'\b'+word+r'\b', "***", my_str)
count_word = find_word.count("***")
print(word+": "+str(count_word))

我希望它足够清楚。谢谢

最佳答案

使用 re.findall 进行字典理解:

import re

cnt = {k: len(re.findall(r'\b{}\b'.format(k), my_str)) for k in food_list}

输出:

{'apple': 1, 'ice cream': 2, 'pancake': 1, 'sushi': 0}

关于python - 如何计算 Python 字符串中列表中每个项目的出现次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58109520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com