code - 如何用Python实现任一个英文的纯文本文件,统计其中的单词出现的个数?

 BB_KYLE 发布于 2022-11-05 15:16

感谢微博上@刘鑫-MarsLiu的TAG每天一个小程序。 你会如何实现上述题目的要求?

#!/usr/bin/env python  
# -*- coding: utf-8 -*-  

""" 
python实现任一个英文的纯文本文件,统计其中的单词出现的个数、行数、字符数 
"""  

file_name = "movie.txt"  

line_counts = 0  
word_counts = 0  
character_counts = 0  

with open(file_name, 'r') as f:  
    for line in f:  
        words = line.split()  

        line_counts += 1  
        word_counts += len(words)  
        character_counts += len(line)  

print "line_counts ", line_counts  
print "word_counts ", word_counts  
print "character_counts ", character_counts

以上代码,有哪些改进的地方?如何改进才更加pythonic?

2 个回答
  • python有1个collections库可以解决你这个问题

    2022-11-09 22:19 回答
  • #!/usr/bin/python
    
    # 这么着,您看您乐意不?
    
    import re
    
    file_name = 'test.txt'
    
    lines_count = 0
    words_count = 0
    chars_count = 0
    words_dict  = {}
    lines_list   = []
    
    with open(file_name, 'r') as f:
        for line in f:
            lines_count = lines_count + 1
            chars_count  = chars_count + len(line)
            match = re.findall(r'[^a-zA-Z0-9]+', line)
            for i in match:
                # 只要英文单词,删掉其他字符
                line = line.replace(i, ' ')
            lines_list = line.split()
            for i in lines_list:
                if i not in words_dict:
                    words_dict[i] = 1
                else:
                    words_dict[i] = words_dict[i] + 1
    
    print 'words_count is', len(words_dict)
    print 'lines_count is', lines_count
    print 'chars_count is', chars_count
    
    for k,v in words_dict.items():
        print k,v
    
    2022-11-09 22:20 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有