在Python中查找字符串中每个单词的频率
编写一个Python代码来查找给定字符串中每个单词的频率。
例子:
Input : str[] = "Apple Mango Orange Mango Guava Guava Mango"
Output : frequency of Apple is : 1
frequency of Mango is : 3
frequency of Orange is : 1
frequency of Guava is : 2
Input : str = "Train Bus Bus Train Taxi Aeroplane Taxi Bus"
Output : frequency of Train is : 2
frequency of Bus is : 3
frequency of Taxi is : 2
frequency of Aeroplane is : 1
方法 1 使用 list():
1.使用Python中的split函数(即字符串.split())将字符串拆分为包含单词的列表,并带有分隔符空格。
Note:
string_name.split(separator) method is used to split the string
by specified separator(delimiter) into the list.
If delimiter is not provided then white space is a separator.
For example:
CODE : str='This is my book'
str.split()
OUTPUT : ['This', 'is', 'my', 'book']
2.初始化一个新的空列表。
3.现在,如果新列表中不存在该单词,则将之前字符串中的单词附加到新列表中。
4.遍历新列表,并使用count函数(即string.count( 字符串 [iteration]))在每次迭代中找到单词的频率。
Note:
string_name.count(substring) is used to find no. of occurrence of
substring in a given string.
For example:
CODE : str='Apple Mango Apple'
str.count('Apple')
str2='Apple'
str.count(str2)
OUTPUT : 2
2
Python3
# Python code to find frequency of each word
def freq(str):
# break the string into list of words
str = str.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]))
def main():
str ='apple mango apple orange orange apple guava mango mango'
freq(str)
if __name__=="__main__":
main() # call main function
Python3
# Python3 code to find frequency of each word
# function for calculating the frequency
def freq(str):
# break the string into list of words
str_list = str.split()
# gives set of unique words
unique_words = set(str_list)
for words in unique_words :
print('Frequency of ', words , 'is :', str_list.count(words))
# driver code
if __name__ == "__main__":
str ='apple mango apple orange orange apple guava mango mango'
# calling the freq function
freq(str)
输出:
Frequency of apple is : 3
Frequency of mango is : 3
Frequency of orange is : 2
Frequency of guava is : 1
使用 set() 的方法 2:
1.使用Python中的split函数(即字符串.split())将字符串拆分为包含单词的列表,并带有分隔符空格。
2.使用set()方法去除重复并给出一组唯一词
3.对集合进行迭代,并使用count函数(即string.count( 字符串[iteration]))在每次迭代中找到单词的频率。
Python3
# Python3 code to find frequency of each word
# function for calculating the frequency
def freq(str):
# break the string into list of words
str_list = str.split()
# gives set of unique words
unique_words = set(str_list)
for words in unique_words :
print('Frequency of ', words , 'is :', str_list.count(words))
# driver code
if __name__ == "__main__":
str ='apple mango apple orange orange apple guava mango mango'
# calling the freq function
freq(str)
输出:
Frequency of apple is : 3
Frequency of mango is : 3
Frequency of orange is : 2
Frequency of guava is : 1
方法 3(使用字典)
# Find frequency of each word in a string in Python
# using dictionary.
def count(elements):
# check if each word has '.' at its last. If so then ignore '.'
if elements[-1] == '.':
elements = elements[0:len(elements) - 1]
# if there exists a key as "elements" then simply
# increase its value.
if elements in dictionary:
dictionary[elements] += 1
# if the dictionary does not have the key as "elements"
# then create a key "elements" and assign its value to 1.
else:
dictionary.update({elements: 1})
# driver input to check the program.
Sentence = "Apple Mango Orange Mango Guava Guava Mango"
# Declare a dictionary
dictionary = {}
# split all the word of the string.
lst = Sentence.split()
# take each word from lst and pass it to the method count.
for elements in lst:
count(elements)
# print the keys and its corresponding values.
for allKeys in dictionary:
print ("Frequency of ", allKeys, end = " ")
print (":", end = " ")
print (dictionary[allKeys], end = " ")
print()
# This code is contributed by Ronit Shrivastava.