题目描述
森森在学习列表的时候,发现一道经典的题目:在一个序列中寻找多数元素。
她给你了一道简化版的问题:
询问你这个序列里面出现次数最多的元素的出现次数。输入
输入多行,一行一个数表示序列里面的每一个数。
注:使用
try:
except EOFError:
来判断什么时候结束输入输出
输出一行,表示出现次数最多的数字的出现次数。
样例输入
12 13 14 12样例输出
2
解答:
将输入的数字录入一个列表中,再将列表中的数作为键存入一个字典中,而字典中对应的值就是该数出现的次数,所以取字典中所有值的最大值即可
遇到的难点一:
如何将数字录入列表中,这里给到的解决方法是,使用while循环,循环内使用try......except的结构,如果输入未发现异常,则向列表中添加数据,如果发现异常,则break跳出循环
遇到的难点二:
对字典知识不熟悉(这里字典名用dic表示)
增加或者修改字典中的键值对:dic[key] = value
取出所有字典中的值:dic.values()
取出所有字典中的键:dic.keys()
字典知识详解:
CSDNhttps://mp.csdn.net/mp_blog/creation/editor/127362891完整代码:
lst = []
while True:
try:
x = int(input())
lst.append(x)
except Exception:
break
dic = {}
for i in lst:
if i in dic:
dic[i] +=1
else:
dic[i] = 1
value = max(dic.values())
print(value)