这篇文章主要介绍了Python文本统计功能之西游记用字统计操作,结合实例形式分析了Python文本读取、遍历、统计等相关操作技巧,需要的朋友可以参考下

本文实例讲述了Python文本统计功能之西游记用字统计操作。分享给大家供大家参考,具体如下:

一、数据

xyj.txt,《西游记》的文本,2.2MB

致敬吴承恩大师,4020行(段)

二、目标

统计《西游记》中:

1. 共出现了多少个不同的汉字;

2. 每个汉字出现了多少次;

3. 出现得最频繁的汉字有哪些。

三、涉及内容:

1. 读文件;

2. 字典的使用;

3. 字典的排序;

4. 写文件

四、效果

五、源代码# coding:utf8

import sys

reload(sys)

sys.setdefaultencoding("utf8")

fr = open('xyj.txt', 'r')

characters = []

stat = {}

for line in fr:

# 去掉每一行两边的空白

line = line.strip()

# 如果为空行则跳过该轮循环

if len(line) == 0:

continue

# 将文本转为unicode,便于处理汉字

line = unicode(line)

# 遍历该行的每一个字

for x in xrange(0, len(line)):

# 去掉标点符号和空白符

if line[x] in [' ','', '\t', '\n', '。', ',', '(', ')', '(', ')', ':', '□', '?', '!', '《', '》', '、', ';', '“', '”', '……']:

continue

# 尚未记录在characters中

if not line[x] in characters:

characters.append(line[x])

# 尚未记录在stat中

if not stat.has_key(line[x]):

stat[line[x]] = 0

# 汉字出现次数加1

stat[line[x]] += 1

print len(characters)

print len(stat)

# lambda生成一个临时函数

# d表示字典的每一对键值对,d[0]为key,d[1]为value

# reverse为True表示降序排序

stat = sorted(stat.items(), key=lambda d:d[1], reverse=True)

fw = open('result.csv', 'w')

for item in stat:

# 进行字符串拼接之前,需要将int转为str

fw.write(item[0] + ',' + str(item[1]) + '\n')

fr.close()

fw.close()

相关推荐:

python统计西游记人物名字出现次数_Python文本统计功能之西游记用字统计操作相关推荐

  1. python统计西游记人物名字出现次数_Python文本统计功能之西游记用字统计操作示例...

    本文实例讲述了Python文本统计功能之西游记用字统计操作.分享给大家供大家参考,具体如下: 一.数据 xyj.txt,<西游记>的文本,2.2MB 致敬吴承恩大师,4020行(段) 二. ...

  2. python爬取新闻并归数据库_Python爬取数据并写入MySQL数据库操作示例

    Python爬取数据并写入MySQL数据库的实例 首先我们来爬取 http://html-color-codes.info/color-names/ 的一些数据. 按 F12 或 ctrl+u 审查元 ...

  3. python字符串的拼接名字的组成_Python拼接字符串的7种方法

    python拼接字符串一样平常有以下几种方式: 1,通过(%)操作符拼接 print('%s %s' % ('Hello', 'world')) >>> Hello world 2, ...

  4. python查询mysql表名字动态日期_Python之路day11作业-MySQL表查询

    #-*- coding: utf-8 -*- __author__ = 'caiqinxiong_cai' #2019/9/25 15:22#多表查询的作业 : https://www.cnblogs ...

  5. python同时输出名字和时间_Python学习笔记 (2) :字符串输出、操作、格式化和日期、时间格式化...

    一.字符串输出及运算 1.常用输出格式及方法 1 print('1234567890')#单引号 2 print("1234567890")#双引号 3 print("& ...

  6. python计算文件中字母出现次数_python – 计算文本文件中字母的频率

    使用collections.Counter(): from collections import Counter with open(file) as f: c = Counter() for x i ...

  7. python变量隔一个数取出来_Python(二):变量、常量,字符串操作

    变量&常量 变量和常量都是存储值的内存区域,"变量"就是说值可以改变,"常量"就是说这个值不能改,是只读的,关于常量不详细介绍了 命名 上一次说过命名规 ...

  8. python列表切片后得到剩余列表_python列表切片和嵌套列表取值操作详解

    python列表切片和嵌套列表取值操作详解 给出列表切片的格式: [开头元素::步长] # 输出直到最后一个元素,(最后一个冒号和步长可以省略,下同) [开头元素:结尾元素(不含):步长] # 其中, ...

  9. python敏感词过滤代码简单代码_Python 实现王者荣耀中的敏感词过滤示例

    Python 实现王者荣耀中的敏感词过滤示例 王者荣耀的火爆就不用说了,但是一局中总会有那么几个挂机的,总能看到有些人在骂人,我们发现,当你输入一些常见的辱骂性词汇时,系统会自动将该词变成" ...

最新文章

  1. MySQL(MariaDB)常用DOM命令
  2. 通过案例学调优之--AWR baseline对比生成AWR报告
  3. 大雁塔为什么七层_西安旅游的打卡景点,大雁塔是干嘛的?怎么来的?
  4. Wiki系统分析比较
  5. 学会利用杠杆,阻碍你成功的,或许恰恰是你认为正确的思维,能力、效率、杠杆三个因素,决定了你一生的发展...
  6. 【Linux系统编程】进程同步与互斥:System V 信号量
  7. 全志_功能引脚配置_sys_config.fex
  8. 9 操作系统第二章 进程管理 管程
  9. 常见URL字符及URL编码值
  10. PID控制算法的c语言实现 附录2 直流电机PWM调速系统中控制电压非线性研究
  11. abaqus python教程_Abaqus-python脚本到底应该怎么写?一文带你入门
  12. k8s报警 FailedCreatePodSandBox
  13. 药物临床试验数据分析(靶点|适应症|企业|登记信息)
  14. 红细胞膜包裹载抗癌药的PLGA纳米载体/聚多巴胺涂覆载药plga材料(生物偶联)
  15. Unity3D代码混淆
  16. C51模拟PS2键盘(三)
  17. v-for和v-if与v-show能否一起使用
  18. 易我数据恢复Mac版让Mac数据恢复变得小菜一碟
  19. mysql中,设置数据ID从1开始
  20. cad转换pdf怎么转换?

热门文章

  1. PHP curl请求处理
  2. 上海亚商投顾:科创50指数录得6连阳 芯片股掀涨停潮
  3. 音频转文字工具都有哪些?分享三款好用的录音转文字软件
  4. 12个 “经典” 网站!
  5. JD-GUI.exe This application requires a Java Runtime Environment 1.7.0 或this application requires a
  6. 实验四+二层旁挂式WLAN组网设计
  7. JavaScript知识大纲(进阶篇)
  8. Android 64 bit的一些兼容性分析
  9. 算法思想记录:给定一个整数数组 nums 和一个目标值 target
  10. 【牛客】[编程题]组队竞赛