【python小练】0004
第 0004 题:任一个英文的纯文本文件,统计其中的单词出现的个数。
先回忆一下各种括号的用途:
() tuple
[] list
{} dict
([]) set——需要一个list作为输入合集
code:
# coding = utf-8
__author__= 'liez' import re
def num(path):
with open(path, 'r') as file:
data=file.read()
print(data)
words=re.compile('[a-zA-Z0-9]+') #compile好像是必须用的,用来格式转换什么的,然后才能进行匹配之类的操作
dict={} for x in words.findall(data):
if x not in dict:
dict[x]=1
else:
dict[x]+=1 print(dict) num('liez.txt')
结果如下。
I am liez.
I am a player.
I love programming.
{'love': 1, 'I': 3, 'player': 1, 'programming': 1, 'a': 1, 'am': 2, 'liez': 1}
背单词的时候看到有人统计了GRE高频词,记得好像也是拿python写的。
把上面那个程序改一下也能起到同样效果,几个改动:
1. 原先用dict输出,现在迁到list里,因为dict好像没法排序,list可以用sorted
2. 打开并写入文件liez.xls
import re
def num(path):
with open(path, 'r') as file:
data = file.read()
print(data)
words = re.compile('[a-zA-Z0-9]+') dict = {}
for x in words.findall(data):
if x not in dict:
dict[x] = 1
else:
dict[x] += 1
for x in dict:
print(x, dict[x]) list=[]
for key,value in dict.items():
list.append((key, value)) #注意是两个括号,因为append只能添加一个参数
list.sort(key = lambda t:t[1], reverse = True)
for x in list:
print(x[0], x[1]) with open('liez.xlsx', 'w') as file:
for x in list:
k=' '.join([str(j) for j in x]) #join可以添加string,所以要转换list里的元素成str
file.write(k+'\n')
file.close() num('liez.txt')
打开liez.xls能看到txt文件里的单词出按现次数从高到低排列,但是单词和出现次数没分列,我不知道怎么把他们弄分列。
不过操作excel文件专门有一个xlwt module,可以指定写入文件的行和列。改天写个单词软件再用吧(毕竟没找的称心的 ̄へ ̄)。
【python小练】0004的更多相关文章
- 【python小练】0014题 和 0015 题
第 0014 题: 纯文本文件 student.txt为学生信息, 里面的内容(包括花括号)如下所示: { ":["张三",150,120,100], ":[& ...
- 【python小练】0013
第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-) 科科...妹子就算了,大晚上的爬点吃的吧.食物图集:抿一口,舔一舔,扭一扭~·SCD 写个简单的爬图爬虫 ...
- 【python小练】0010
第 0010 题:使用 Python 生成类似于下图中的字母验证码图片 思路: 1. 随机生成字符串 2. 创建画布往上头写字符串 3. 干扰画面 code: # codeing: utf-8 fro ...
- 【python小练】0005
第 0005 题:你有一个目录,装了很多照片,把它们的尺寸变成都不大于 iPhone5 分辨率的大小. 首先,iphone5的分辨率是1136x640. if条件句判断横(纵)向是否大于对应的ipho ...
- 【python小练】0002
第 0002 题:将 0001 题生成的 200 个激活码(或者优惠券)保存到 MySQL 关系型数据库中. . . .(一脸懵逼) Python访问数据库:(廖雪峰python教程) 1. SQLi ...
- 【python小练】0001
第 0001 题:做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)? # coding ...
- python小练--使用正则表达式将json解析成dict
练习python语法,自己实现了一个简单的解析json字符,存为dict字典对象. { "id":12, "name":"jack", &q ...
- python 小练手
监控 主动监控 - 服务器端轮询客户端 被动监控-客户端agent上报到服务器端 混合模式---两种都支持 需求 1个性化的监控需求 2每个服务的监控间隔不同 3混合模式的监控
- 【python小练】0020
第 0020 题: 登陆中国联通网上营业厅 后选择「自助服务」 --> 「详单查询」,然后选择你要查询的时间段,点击「查询」按钮,查询结果页面的最下方,点击「导出」,就会生成类似于 2014年1 ...
随机推荐
- [APIO2013]机器人(斯坦纳树)
题目描述 VRI(Voltron 机器人学会)的工程师建造了 n 个机器人.任意两个兼容的机 器人站在同一个格子时可以合并为一个复合机器人. 我们把机器人用 1 至 n 编号(n ≤ 9).如果两个机 ...
- centos7安装mysql5.6(rpm包安装)
应用场景:日常需求安装数据库——MySQL. 安装环境:① 最小化安装的centos7.2(同版本RHEL7适用): ② MySQL 5.6: 具体步骤: 1. 下载mysql 5.6并解压(官网有时 ...
- ftp文件共享服务详解
ftp 文件共享服务,文件的上传下载 跨平台,tcp协议 21号(命令端口) 20号(数据端口,主动模式) 默认情况 ftp服务运行被动模式 vsftpd:软件 非常安全的rpm -qi vsftp ...
- docker cmd list
436 wget -qO- https://get.docker.com/ | sh 437 sudo apt-get update 438 sudo apt-get install -y docke ...
- ftp 两台服务器传输文件 apache
import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.OutputS ...
- Vim在图形环境下全屏产生黑边
在终端中运行Vim或运行GVim都会遇到这个问题,当窗口全屏时,左右和底部可能会出现边框,这个边框在终端中的Vim表现为Terminal的背景颜色.下图为SpaceVim+Neovim+Termina ...
- 【洛谷P1198】最大数
题目大意:在线维护一个序列,支持插入一个数,查询区间最值. 题解:直接建立线段树,插入就单点修改,查询就正常查..orz开始还真没想到.. 代码如下 #include <bits/stdc++. ...
- [AC自动机][学习笔记]
用途 AC自动机适用于一类用多个子串在模板串中匹配的字符串问题. 也就是说先给出一个模板串,然后给出一些子串.要求有多少个子串在这个模板串中出现过. KMP与trie树 其实AC自动机就是KMP与tr ...
- Idea + Git + GitLab 使用
首先去下载Git,https://git-scm.com/ 安装好之后,打开Idea--->Settings,,,设置Git路径,然后点击Test按钮 然后是GitLab,一般企业内部开发都会有 ...
- django系列 1 :python+django环境搭建 +mac提示找不到manage.py命令
1.安装python3 2.设置python3的环境变量 3.进入命令行模式,输入 pip install django 1.10.3 4.验证是否安装完成 pip show django 5.dja ...