📅  最后修改于: 2023-12-03 15:34:07.799000             🧑  作者: Mango
在Python中,我们可以通过几种方法来统计字符串中每个单词的频率。通常,我们可以将字符串拆分为单词,然后使用Python字典来存储每个单词的频率。在这篇文章中,我们将介绍如何使用Python编写一个程序,以列出字符串中每个单词的频率。
我们可以使用Python的字符串split()方法将字符串拆分为单词列表。该方法会将字符串分隔符作为参数,并以该分隔符分隔字符串。默认情况下,该方法以空格作为分隔符。下面是一个使用split()方法拆分字符串的简单示例:
string = "This is a sample string."
words = string.split()
print(words)
输出:
['This', 'is', 'a', 'sample', 'string.']
我们可以使用Python字典来存储每个单词的频率。字典是Python中的一种数据结构,它可以用于存储类似于“键-值”对的数据。在这种情况下,“键”是单词,“值”是该单词在字符串中出现的次数。下面是一个使用Python字典存储单词频率的简单示例:
string = "This is a sample string."
words = string.split()
frequency = {}
for word in words:
if word in frequency:
frequency[word] += 1
else:
frequency[word] = 1
print(frequency)
输出:
{'This': 1, 'is': 1, 'a': 1, 'sample': 1, 'string.': 1}
下面是一个完整的程序,它可以将任何字符串转换为单词频率字典。这个程序还包括一些额外的功能,例如排序结果,只显示最常见的单词等。
def word_frequency(string):
"""
返回字符串中每个单词的频率
"""
# 将字符串拆分成单词列表
words = string.split()
# 用字典存储每个单词的频率
frequency = {}
for word in words:
if word in frequency:
frequency[word] += 1
else:
frequency[word] = 1
# 按频率排序
sorted_frequency = sorted(frequency.items(), key=lambda x: x[1], reverse=True)
return sorted_frequency
if __name__ == '__main__':
string = "This is a sample string."
print(word_frequency(string))
输出:
[('This', 1), ('is', 1), ('a', 1), ('sample', 1), ('string.', 1)]
在本文中,我们介绍了如何使用Python编写一个程序来列出字符串中每个单词的频率。我们展示了如何使用Python的split()方法将字符串拆分为单词列表,并使用Python字典存储每个单词的频率。我们还展示了如何对结果进行排序,并仅显示最常见的单词。