📜  Python – 列出字符串中的单词频率(1)

📅  最后修改于: 2023-12-03 15:34:07.799000             🧑  作者: Mango

Python – 列出字符串中的单词频率

在Python中,我们可以通过几种方法来统计字符串中每个单词的频率。通常,我们可以将字符串拆分为单词,然后使用Python字典来存储每个单词的频率。在这篇文章中,我们将介绍如何使用Python编写一个程序,以列出字符串中每个单词的频率。

用split()方法将字符串分隔为单词列表

我们可以使用Python的字符串split()方法将字符串拆分为单词列表。该方法会将字符串分隔符作为参数,并以该分隔符分隔字符串。默认情况下,该方法以空格作为分隔符。下面是一个使用split()方法拆分字符串的简单示例:

string = "This is a sample string."
words = string.split()
print(words)

输出:

['This', 'is', 'a', 'sample', 'string.']
使用Python字典存储每个单词的频率

我们可以使用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字典存储每个单词的频率。我们还展示了如何对结果进行排序,并仅显示最常见的单词。