zoukankan      html  css  js  c++  java
  • 20170512 Python练习册0004统计英文的纯文本文件的单词出现的个数

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

    # 第 0004 题:任一个英文的纯文本文件,统计其中的单词出现的个数
    from collections import Counter
    import re

    def creat_list(filename):
    data_list = []
    with open(filename,'r',encoding= 'utf-8') as f:#打开文件,encoding=‘utf-8',不然报UnicodeDecodeError
    for line in f:#循环每一个字母
    content = re.sub(r'[-,]|d|?|:|"|!|.|/|', '', line)#利用正则替换掉数字,字符等,替换为空格
    print(content)#打印看一下是否替换完了
    data_list.extend(content.strip().split(' '))#删除空白符(包括' ',' ',' ',' '),并以' '空格来切割生成的字符串
    #print(data_list)#打印一遍生成的列表
    return data_list
    def wc(fileneme):
    print(Counter(creat_list(fileneme)))#调用creat_list函数处理文件,并用Counter计数
    if __name__=='__main__':
    filename = 'F:pythonPython练习册Walden.txt'
    wc(filename)

    需要用到的知识有:
    # split(pattern,string,maxsplit=0,flag=0
    # split根据匹配到的字符串来分割字符,返回分割字符串组成的列表
     
    import re
    str4 = 'imooc:C C++ Java Python'
    info_split1 = re.split(r':| ',str4)#将字符串str4 按:或者空格 进行分割
    print(info_split1)
     
    str5 = 'imooc:C C++ Java Python,C#'
    info_split2 = re.split(r':| |,',str5)
    print(info_split2)#按照冒号: 空格 或者逗号,进行分割成列表
     

    Counter

    Counter是一个简单的计数器,例如,统计字符出现的个数:

    >>> from collections import Counter
    >>> c = Counter()
    >>> for ch in 'programming':
    ...     c[ch] = c[ch] + 1
    ...
    >>> c
    Counter({'g': 2, 'm': 2, 'r': 2, 'a': 1, 'i': 1, 'o': 1, 'n': 1, 'p': 1})
    

    Counter实际上也是dict的一个子类,上面的结果可以看出,字符'g''m''r'各出现了两次,其他字符各出现了一次。

  • 相关阅读:
    C#数据结构一:基础知识
    使用工厂方法模式实现多数据库WinForm手机号码查询器(附源码)
    我的个人年度总结
    CutePsWheel javascript libary:控制输入文本框为可使用滚轮控制的js库
    CSS制作无图片圆角矩形
    将SqlServer数据库转换Sqlite的工具
    原创电子书:C#难点逐个击破
    (译)在非IE浏览器中实现“灰阶化”
    extjs 记录一下
    Ext.Window相关
  • 原文地址:https://www.cnblogs.com/Jiang190/p/6845973.html
Copyright © 2011-2022 走看看