以下内容为嵩天老师在课堂上讲解的,为方便童鞋们拷贝,我把代码及解析放到下面: def getText(): txt=open("hamlet.txt","r").read() #以只读方式打开这个文件 txt=txt.lower() #将所有字符转化为小写 for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_’‘“”{|}~`': #将所有特殊符号替换为空格 txt=txt.replace(ch,' ') return txt hamletText=getText() words=hamletText.split() #以默认空格来分割整个字符串,返回列表 counts={} for word in words: #这句关键,用words列表中的每个单词去索引字典, # 已经有这个键的话就把相应的值加1,没有的话就取值为0,再加1 counts[word]=counts.get(word,0)+1 items=list(counts.items()) #将字典类型转换为list类型便于操作 items.sort(key=lambda x:x[1],reverse=True) #对一个列表,所有键值对的第2个元素进行排序, # 默认是false,是从小到大,True的话就是从大到小,注意里面的'key='暂时记住这句,这是list的sort排序的lambda方法 '''l = [[2, 2, 3], [1, 4, 5], [5, 4, 9]] 2 l.sort(lambda x:x[0]) ##按照第一个元素进行排序 3 print(l) ##输出:[[1, 4, 5], [2, 2, 3], [5, 4, 9]] 5 匿名函数的x,表示的是l列表中的每一个成员元素 6 7 x[0] :表示列表里面列表的第一个成员元素 8 ''' for i in range(10): word,count=items[i] print('{0:<10} {1:>5}'.format(word,count))