遇到字符统计题就谢天谢地吧,这种题已经有非常固定的回答策略。先读文件,然后将文件转换成列表,使用字典统计字符,排序后写入创建的文件里。
《傲慢与偏见》是史上震撼人心的“世界文学十部最佳小说之一”。第一章的内容由文件"arrogant.txt"给出
1.编写程序,统计该篇文章的英文字符数(不统计换行符),字符与出现次数之间用英文冒号“:”分隔。结果保存在文件下,命名为"PY301-1.txt"。
fi=open('arrogant.txt','r') fo=open('arrogant1.txt','w') txt=fi.read() d = {} for i in txt: d[i]=d.get(i,0)+1 del d['\n'] ls =list(d.items()) for i in range(len(ls)): fo.write("{}:{}\n".format(ls[i][0],ls[i][1])) fi.close() fo.close()
2.在问题1的前提下,将得到的字符次数记行排序,并将排名前10的常用字符保存在"arrogant-sort.txt"文件中。
fi=open('arrogant.txt','r') fo=open('arrogant2.txt','w') txt=fi.read() d = {} for i in txt: d[i]=d.get(i,0)+1 del d['\n'] ls =list(d.items()) ls.sort(key=lambda x:x[1],reverse=True) for i in range(10): fo.write("{}:{}\n".format(ls[i][0],ls[i][1])) fi.close() fo.close()