gpt4 book ai didi

python - 优化给定字符串中单词列表的计数出现次数 (Python)

转载 作者:行者123 更新时间:2023-12-04 08:26:22 24 4
gpt4 key购买 nike

我正在创建一个函数来计算 searched_words 的出现次数在传递的字符串中。结果是一个字典,其中匹配的单词作为键,它们的出现作为值。
我已经创建了一个函数来完成这个,但它的优化很差。

def get_words(string, searched_words):
words = string.split()

# O(nm) where n is length of words and m is length of searched_words
found_words = [x for x in words if x in searched_words]

# O(n^2) where n is length of found_words
words_dict = {}
for word in found_words:
words_dict[word] = found_words.count(word)

return words_dict


print(get_words('pizza pizza is very cool cool cool', ['cool', 'pizza']))
# Results in {'pizza': 2, 'cool': 3}
我曾尝试使用 Counter来自 Python 的 collections 的功能模型,但似乎无法重现所需的输出。似乎在使用 set数据类型也可以解决我的优化问题,但我不确定如何在使用集合时计算单词出现次数。

最佳答案

您认为使用 Counter 有一个很好的解决方案是正确的。 :

from collections import Counter

string = 'pizza pizza is very cool cool cool'
search_words = ['cool', 'pizza']
word_counts = Counter(string.split())

# If you want to get a dict only containing the counts of words in search_words:
search_word_counts = {wrd: word_counts[wrd] for wrd in search_words}

关于python - 优化给定字符串中单词列表的计数出现次数 (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65245610/

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