Python实现统计单词出现的个数
最近在看python脚本语言,脚本语言是一种解释性的语言,不需要编译,可以直接用,由解释器来负责解释。python语言很强大,而且写起来很简洁。下面的一个例子就是用python统计单词出现的个数。
importsys importstring #importcollections iflen(sys.argv)==1orsys.argv[1]in{"-h","--help"}: print("usage:uniquewordfilename_1filename_2...filename_n") sys.exit() else: words={} #words=collections.defaultdict(int) strip=string.whitespace+string.punctuation+string.digits+"\"'" forfilenameinsys.argv[1:]: forlineinopen(filename): forwordinline.split(): word=word.strip(strip) iflen(word)>=2: words[word]=words.get(word,0)+1 #words[word]+=1 forwordinsorted(words): print("'{0}'occurs{1}times".format(word,words[word]))
假设文件名是uniqueword.py,在命令行下输入:uniqueword.pyfilename_1filename_2...filename_n中单词出现的次数可以被统计出来。
第四行和第五行判断是否有输入参数,如果输入参数为空或者为-h,-help,则输出帮助信息。
从第七行到第14行是核心部分,逐一打开参数中指定的文件,并读取每一行,再用字符串的split方法把读取的行抽取出一个一个的单词,但单词长度大于2的时候,把此单词加入到字典words中。其中words.get(word,0)的意思是取出key等于word的value,如果key为空,则把value置为默认值0.最后打印出结果。