首页 > 解决方案 > 查找列表中每个单词的频率并在字典中显示结果

问题描述

''' 定义频率(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')

标签: python-3.xlistdictionary

解决方案


您发布的代码对我来说似乎有问题。如果要计算所有单词的数量以及 . 的用途,为什么要检查重复项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是一个内置类。


推荐阅读