刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

面试题

请编写一个Python程序,实现统计文本文件中各个单词的出现频次并输出。

使用微信搜索喵呜刷题,轻松应对面试!

答案:

解答思路:

要编写一个Python程序来计算文件中单词的出现频率,我们可以遵循以下步骤:

  1. 打开文件并读取内容。
  2. 将文件内容分割成单词。
  3. 创建一个字典来存储单词及其出现的频率。
  4. 遍历每个单词,如果单词在字典中已存在,则增加其计数;否则,将其添加到字典中并设置计数为1。
  5. 关闭文件。
  6. 可以选择对结果进行排序,以便按单词出现频率显示。

最优回答:

def count_words_in_file(filename):
    # 打开文件并读取内容
    with open(filename, 'r', encoding='utf-8') as file:
        content = file.read()
    
    # 将文件内容分割成单词
    words = content.split()
    
    # 创建一个字典来存储单词及其出现的频率
    word_freq = {}
    for word in words:
        # 将单词转为小写形式,避免大小写影响计数
        word = word.lower()
        # 如果单词已存在于字典中,增加计数;否则添加到字典中并设置计数为1
        if word in word_freq:
            word_freq[word] += 1
        else:
            word_freq[word] = 1
    
    # 返回单词频率字典,按单词排序(如果需要)
    return sorted(word_freq.items(), key=lambda x: x[1], reverse=True)  # 按频率降序排序

# 使用函数计算文件中单词的出现频率
word_frequency_list = count_words_in_file('your_file_path.txt')  # 将'your_file_path.txt'替换为你的文件路径
for word, freq in word_frequency_list:
    print(f"{word}: {freq}")  # 输出每个单词及其出现频率

解析:

在处理文件时,需要注意文件的编码方式,这里假设文件是UTF-8编码。此外,分割单词时可能会遇到标点符号、特殊字符等,可能需要预处理这些字符以达到更准确的分词效果。如果需要处理大型文件,可能需要考虑逐行或逐块读取文件以避免内存问题。此外,还可以使用Python中的集合(set)来快速检查单词是否已存在,以提高性能。如果对性能有更高要求,还可以考虑使用第三方库如collections中的Counter来进行计数操作。
创作类型:
原创

本文链接:请编写一个Python程序,实现统计文本文件中各个单词的出现频次并输出。

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share