python-3.x - 查找列表中每个单词的频率并在字典中显示结果
问题描述
''' 定义频率(str):
# break the string into list of words
str = str.lower().split()
str2 = []
# loop till string values present in list str
for i in str:
# checking for the duplicacy
if i not in str2:
# insert value in str2
str2.append(i)
for i in range(0, len(str2)):
# count the frequency of each word(present
# in str2) in str and print
print('Frequency of', str2[i], 'is :', str.count(str2[i]))
print(str(list))
'''
现在 freq('Hell is hell') 的结果是地狱的频率是:2 是的频率是:1
如何以字典格式显示结果,例如:('hell:2','is:1')
解决方案
您发布的代码对我来说似乎有问题。如果要计算所有单词的数量以及 . 的用途,为什么要检查重复项str2
?同样,您正在检查str2
没有重复单词的计数,它会将每个单词的计数设为 1。
您可以尝试以下代码以获得所需的结果:
def freq(str1):
str1 = str1.lower().split()
result = dict()
for word in str1:
result[word] = str1.count(word)
return result
PS:在代码中使用关键字作为变量不是一个好习惯,str
是一个内置类。
推荐阅读
- laravel - CentOs7 上的 Laravel 路由错误 404(未找到)
- python - 使用条件创建多个列
- spring - Spring Security 在新页面上基于 JWT 令牌创建会话
- python - 是否有查找日期时间之间差异的功能?
- javascript - HtmlAgilityPack - 附加两个节点不起作用
- babeljs - 由于@babel/preset-typescript,Treeshaking webpack 4 不适用
- python - odoo v8 申请行
- amazon-web-services - 使用 --billing-mode=PAY_PER_REQUEST 创建 dynamodb 表失败
- angularjs - Angularjs sortable无法读取null的属性'ngModel'
- azure-devops - 如何在 Azure 的 VSTS 构建定义中使用 --prod 标志进行构建