代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Python
】
统计所有'单词'出现的次数
作者:
LMcallme
/ 发布于
2013/5/28
/
1009
第一种用二叉树实现;
#!/usr/bin/env python # -*- coding: utf-8 -*- #filename:.py import os,sys,time StartTime=time.time() #屏蔽列表通过对输出的屏蔽形成形式上的remove #之所以不直接删除是因为其代价太大 _remove = [] _Sum=0 #总单词数 #单词树 class wtree: #创建根节点 def __init__(self,word): self.word=word self.cont=1 self.left = None self.right = None #添加单词或计数 def add(self,word): flag=cmp(self.word,word) if flag ==1: #self.word>word if self.left: self.left.add(word) else: self.left = wtree(word) if flag==0: #self.word==word self.cont += 1 if flag==-1: #self.word<word if self.right: self.right.add(word) else: self.right = wtree(word) #获取word出现的频数 def getNum(self,word): Num=0 global _remove if word in remove: #在屏蔽列表中 return Num flag=cmp(self.word,word) if flag ==1: #self.word>word if self.left: Num=self.left.getNum(word) if flag==0: #self.word==word Num = self.cont if flag==-1: #self.word<word if self.right: Num = self.right.getNum(word) return Num #打印元素 def tprint(self): if self.left : self.left.tprint() global _remove if self.word not in _remove: print('%d\t%s\n'%(self.cont,self.word)) if self.right: self.right.tprint() #重定向输出法输出到文件 def out2txt(self,file): stdout = sys.stdout sys.stdout = file self.tprint() sys.stdout = stdout #单词树测试 def WtreeTest(): str='i am a programer 1 2 3 6 5 7 ' list=str.split() root = wtree(list[0]) for it in list[1:]: root.add(it) root.tprint() #WtreeTest() #为了保证不会因为文件过长不换行而截断单词以及去除无用符号进行文件格式化 def geshihua(filename): File=open(filename,'r+') cont = 0 #空格计数 char = File.read(2) while char : #先假设每个字符2字节 if char.isspace(): #如果是空白符号 cont+=1 if cont > 20: #20个单词为一行 File.write('\n') cont=0 char = File.read(2) File.close() #输入文件名 if len(sys.argv)==2: filename=sys.argv[1] geshihua(filename) inputF=open(filename,'r') outF=open('单词统计.txt','a') root=wtree('root') for str in inputF: list = str.split() for word in list: root.add(word) root.out2txt(outF) def MainTest(filename): geshihua(filename) inputF=open(filename,'r') outF=open('单词统计.txt','w+') root=wtree('root') for str in inputF: list = str.split() for word in list: temp=word.lower()#忽略大小写 if len(temp)>1: root.add(temp) root.out2txt(outF) inputF.close() MainTest('t.txt') EndTime=time.time() print('use time :%s second'%(EndTime-StartTime))
试试其它关键字
出现的次数
同语言下
.
比较两个图片的相似度
.
过urllib2获取带有中文参数的url内容
.
不下载获取远程图片的宽度和高度及文件大小
.
通过qrcode库生成二维码
.
通过httplib发送GET和POST请求
.
Django下解决小文件下载
.
遍历windows的所有窗口并输出窗口标题
.
根据窗口标题调用窗口
.
python 抓取搜狗指定公众号
.
pandas读取指定列
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
LMcallme
贡献的其它代码
(
1
)
.
统计所有'单词'出现的次数
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3