环境:

Python 3的代码,亲测可用。

思路:

是先把每个字符提出来放在列表里;再过滤掉其中的标点符号;最后用字典对某个字出现的频率进行累加。

扩展:

用处很多,稍微改改,既可以用来统计小说或文章,也可以用来决定让孩子学哪些常用字,还可以用来分析微博或朋友圈中好友的语言特点,需要的就拿去浪吧,记得送我一个滑稽的回复。

 #coding:utf-8

 word_lst = []
word_dict = {} exclude_str = ",。!?、()【】<>《》=:+-*—“”…" with open("芳华.txt","r") as fileIn ,open("芳华字频.txt",'w') as fileOut: # 添加每一个字到列表中
for line in fileIn:
for char in line:
word_lst.append(char) # 用字典统计每个字出现的个数
for char in word_lst:
if char not in exclude_str:
if char.strip() not in word_dict: # strip去除各种空白
word_dict[char] = 1
else :
word_dict[char] += 1 # 排序
# x[1]是按字频排序,x[0]则是按字排序
lstWords = sorted(word_dict.items(), key=lambda x:x[1], reverse=True) # 输出结果 (前100)
print ('字符\t字频')
print ('=============')
for e in lstWords[:100]:
print ('%s\t%d' % e)
fileOut.write('%s, %d\n' % e)

输出结果:

 字符    字频
=============
的 3641
一 1834
了 1748
是 1506
不 1267
我 1229
她 1156
他 985
小 962
个 921
人 866
在 853
刘 745
丁 728
那 723
上 705
来 698
峰 691
们 684
就 667
说 577
有 572
到 564
这 562
里 537
儿 520
嫚 499
子 494
都 492
着 491
大 482
么 462
出 460
看 441
也 415
得 404
下 383
时 367
还 366
女 349
地 340
头 331
好 327
没 326
去 321
过 320
老 317
跟 311
你 309
把 307
对 303
年 301
会 300
生 291
为 289
发 289
要 281
何 280
亲 273
后 272
给 267
和 266
天 265
家 259
手 251
长 251
想 249
多 242
自 241
开 240
当 236
兵 235
样 232
郝 230
可 228
起 225
被 224
成 216
十 215
什 215
以 209
事 209
从 209
点 208
能 203
两 203
回 202
门 201
所 195
淑 188
雯 188
只 188
心 184
身 184
让 179
道 179
母 174
做 173
话 173
最 172
>>>

主人公的名字排名靠前,嗯,合情合理。

用Python实现《芳华》小说中的汉字频率统计的更多相关文章

  1. 用Python实现小说中的汉字频率统计

     环境: Python 3的代码,亲测可用. 思路: 是先把每个字符提出来放在列表里:再过滤掉其中的标点符号:最后用字典对某个字出现的频率进行累加. 扩展: 用处很多,稍微改改,既可以用来统计小说或文 ...

  2. python 将windows字体中的汉字生成图片的方法

    #encoding: utf-8import osimport pygame chinese_dir = '黑体常规'if not os.path.exists(chinese_dir): os.mk ...

  3. 在众多小说中,Python告诉你哪本小说好看

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 有趣的Python PS:如有需要Python学习资料的小伙伴可以 ...

  4. python爬虫之小说网站--下载小说(正则表达式)

    python爬虫之小说网站--下载小说(正则表达式) 思路: 1.找到要下载的小说首页,打开网页源代码进行分析(例:https://www.kanunu8.com/files/old/2011/244 ...

  5. Python抓取小说

    Python抓取小说 前言 这个脚本命令MAC在抓取小说写,使用Python它有几个码. 代码 # coding=utf-8 import re import urllib2 import chard ...

  6. python实例:利用jieba库,分析统计金庸名著《倚天屠龙记》中人物名出现次数并排序

    本实例主要用到python的jieba库 首先当然是安装pip install jieba 这里比较关键的是如下几个步骤: 加载文本,分析文本 txt=open("C:\\Users\\Be ...

  7. Python:Python2和3不同print汉字方式

    Python3: 可以直接通过print('你好')输出 Python2: 需在开头加#encoding=UTF-8 不过之前输出的时候即使加了开头一行,也是一些混乱的汉字,一看就知道编码错误,后来我 ...

  8. [zz]如何在C语言程序中处理汉字

    学习过C语言的人也许有时会遇到这样一个问题:如何用变量存储汉字以及对这些变量进行操作.目前许多C语言参考书中都没涉及到这个问题,程序中多为处理英文变量和英文字符串,涉及到汉字的情况也大都是在print ...

  9. 如何使用Python在Kaggle竞赛中成为Top15

    如何使用Python在Kaggle竞赛中成为Top15 Kaggle比赛是一个学习数据科学和投资时间的非常的方式,我自己通过Kaggle学习到了很多数据科学的概念和思想,在我学习编程之后的几个月就开始 ...

随机推荐

  1. JAVA中限制接口流量、并发的方法

    JAVA中限制接口流量可以通过Guava的RateLimiter类或者JDK自带的Semaphore类来实现,两者有点类似,但是也有区别,要根据实际情况使用.简单来说, RateLimiter类是控制 ...

  2. Django笔记 manage.py脚本的使用

    1. 管理Django项目 python manage.py startproject projectname # 新建Django project ~~projectname是自己的项目名称 pyt ...

  3. CSS核心内容之盒子模型

    1.盒子模型具有的属性: 内容(content) 填充(padding) 边框(border) 边界(margin) 图示如下: 2.流概念 1.流的概念 在现实生活中已经流水,在网页设计中就是指元素 ...

  4. Mysql 查询重复的记录

    我们都会使用distinct去除重复值,今天调试一个问题,业务需要查询出重复的数据,实现如下: 查询帖子的被哪些用户收藏,其中user_id,post_id可以唯一确定一条记录: 先使用post_id ...

  5. RHEL7.2安装

    先在系统启动的时候按下Del键(有些系统是F2键)进入BIOS,设置从光盘启动. 系统只有2个USB口时,1个要接光驱,另外1个口不能同时接键盘和鼠标,可以接1个USB集线器,键盘和鼠标同时接入到集线 ...

  6. java HotSpot 内存管理白皮书

    原文见:http://www.open-open.com/lib/view/open1381034220705.html.查阅资料后,对原文做了补充. 文中关于JVM的介绍基于JDK1.6的Hotsp ...

  7. BZOJ 1076: [SCOI2008]奖励关 [DP 期望 状压]

    传送门 题意:$n$种宝物,出现$k$次每次一种,每种宝物有价值和吃掉它之前必须要吃掉的宝物的集合,求采取最优策略的期望最大价值 1<=k<=100,1<=n<=15,分值为[ ...

  8. POJ 1873 The Fortified Forest [凸包 枚举]

    The Fortified Forest Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 6400   Accepted: 1 ...

  9. BZOJ 1037: [ZJOI2008]生日聚会Party [序列DP]

    1037: [ZJOI2008]生日聚会Party Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2249  Solved: 1337[Submit] ...

  10. c语言输入一个字符串,统计其字母,数字和其他字符的个数,并以柱状图输出

    #include<stdio.h>int main(int arge,char *argv[]){ char ch; int alp=0,num=0,oth=0,len,alp_start ...