7

您所在的位置:网站首页 python字典最大value 7

7

2023-05-30 18:18| 来源: 网络整理| 查看: 265

现在需要统计若干段文字(英文)中的单词数量,并且还需统计每个单词出现的次数。

注1:单词之间以空格(1个或多个空格)为间隔。注2:忽略空行或者空格行。

基本版: 统计时,区分字母大小写,且不删除指定标点符号。

进阶版:

统计前,需要从文字中删除指定标点符号!.,:*?。 注意:所谓的删除,就是用1个空格替换掉相应字符。统计单词时需要忽略单词的大小写。 输入说明

若干行英文,最后以!!!!!为结束。

输出说明

单词数量 出现次数排名前10的单词(次数按照降序排序,如果次数相同,则按照键值的字母升序排序)及出现次数。

输入样例1 failure is probably the fortification in your pole it is like a peek your wallet as the thief when you are thinking how to spend several hard-won lepta when you are wondering whether new money it has laid background because of you then at the heart of the most lax alert and most low awareness and left it godsend failed !!!!! 输出样例1 46 the=4 it=3 you=3 and=2 are=2 is=2 most=2 of=2 when=2 your=2 输入样例2 Failure is probably The fortification in your pole! It is like a peek your wallet as the thief when You are thinking how to. spend several hard-won lepta. when yoU are? wondering whether new money it has laid background Because of: yOu?, then at the heart of the Tom say: Who is the best? No one dare to say yes. most lax alert and! most low awareness and* left it godsend failed !!!!! 输出样例2 54 the=5 is=3 it=3 you=3 and=2 are=2 most=2 of=2 say=2 to=2

代码实现:

context = '' temp = str(input()) while temp != '!!!!!': context = context + temp + ' ' temp = input() for x in '!.,:*?': context = context.replace(x,' ') mylist = list(context.lower().split()) mydict = {} cnt = 0 for str in mylist: if str not in mydict: mydict[str] = 1 cnt += 1 else: mydict[str] += 1 result = sorted(mydict.items(), key = lambda x:x[0]) result.sort(key=lambda x:x[1], reverse=True) print(cnt) for i in range(10): print("{0}={1}".format(result[i][0], result[i][1]))

思路:

首先,将文章内容以字符串的形式读入,从而过滤掉空行和多余的空格。 然后,过滤掉标点符号,用空格替代。接下来将所有出现过的单词存到列表中进行处理。

心得:

原来按出现次数排序的部分只用了一个sort,写的是

result = sorted(mydict.items(), key = lambda x:x[0], reverse=True)

提交之后发现,还要按字典序对出现相同次数的单词排序。

最终使用了两次sort,先按字典序排好键,再按从大到小排好值。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3