使用比较基本的方法写的参考代码:
#!/usr/bin/env?python#-*-?coding:?utf-8?-*-
#python?2.7
import?re
print?u'请输入字符串:'
wz?=?raw_input()
s?=?wz.lower()
#小写单词的正则表达式
r='[a-z]+'
#找到所有单词
ws?=?re.findall(r,s)
#定义一个字典来存储单词和次数
dt?=?{}
for?w?in?ws:
dt[w]?=?dt.setdefault(w,0)+1
#wd来存储单词集合,可能有几个,比如2个单词,都出现30次
wd?=?[]
#max用来存储单词出现的最多的次数
max?=?0
for?word,times?in?dt.items():
if?times>max:
wd?=?[]
wd.append(word)
max?=?times
elif?times?==?max:
wd.append(word)
print?u'有%s个单词,出现频率最高:'%len(wd)
for?x?in?wd:
print?"%s\t%s"%(x,max)
测试
请输入字符串:A?good?beginning?makes?a?good?ending!!!
有2个单词,出现频率最高:
a?2
good2