当前位置: 首页 > 知识库问答 >
问题:

Python:输出最频繁的数字及其数量

夹谷浩宕
2023-03-14

所以,问题是,我有一个由30个随机重复的数字组成的列表,我必须找到最频繁的数字以及重复的次数。

例如:列表是[10、10、11、11、1、10、5、7、19、7、3、11、7、15、16、20、9、7、4、2、3、11、20、14、5、15、2、14、20、6],从这个列表中,我希望显示的结果是11、4次7、4次。

我一直在努力,但我似乎迷路了,我不能清楚地找出一种方法,超越了制作列表和为列表中的i写作:

共有3个答案

卫景明
2023-03-14

我仍然是一个新手,我尝试了这个并且有效,我希望您会发现它易于阅读。但是,我会推荐一个更简洁的解决方案,因为有经验的用户已经给出了:)

from collections import Counter


data = [10, 10, 11, 11, 1, 10, 5, 7, 19, 7, 3, 11, 7, 15, 16, 20, 9, 7, 4, 2, 3, 11, 20, 14, 5, 15, 2, 14, 20, 6]


def most_frequent_number_finder(your_list):
    occurence_count = Counter(your_list)
    return occurence_count.most_common(1)[0][0]


most_frequent_number = (most_frequent_number_finder(data))


most_frequent_number_count  = data.count(most_frequent_number)


print(f"Your most frequent number is {most_frequent_number} with a count of {most_frequent_number_count}")

##打印:您最常使用的数字是11,计数为4

还有,如果出现重复的数字,您会怎么做,需要考虑一下。

夹谷英奕
2023-03-14

你可以试试这样,

import collections
numbers = [1,2,2,3,3]
data = collections.Counter(numbers)
data_list = dict(data)
max_value = max(list(data.values()))
mode_val = [num for num, freq in data_list.items() if freq == max_value]
if len(mode_val) == len(numbers):
    print("No mode in the list")
else:
    print('mode: ',mode_val)
x= {y:numbers.count(y) for y in mode_val}
print('times: ',x)
钦枫
2023-03-14

使用基本Python完成此任务的一种方法;没有itertools集合将是:

d = {}
mylist = [1,1,2,2,2,3,3,3,3]

for i in set(mylist):
    d[i] = mylist.count(i)

然后,对cript进行排序,以确定最频繁的,等等。

这个答案是为了教育目的而发布的,显示了一种不使用图书馆完成这项任务的较低级别的方法。

 类似资料:
  • 问题内容: 我有一个数字数组,我想知道该数组中哪个数字最常见。数组有时有5-6个整数,有时有10-12个,有时甚至更多- 数组中的整数也可以不同。因此,我需要一个可以与数组的不同长度和值一起使用的函数。 一个例子: 另一个例子: 现在,我正在寻找一个给出0(在第一个示例中)的函数,因为它在此数组中是3倍,而数组中的另一个整数(1)在数组中仅是2倍。或第二个例子是4。 看起来很简单,但是我找不到解决

  • 主要内容:无符号数的输出在数学中,数字有正负之分。在C语言中也是一样,short、int、long 都可以带上正负号,例如: 如果不带正负号,默认就是正数。 符号也是数字的一部分,也要在内存中体现出来。符号只有正负两种情况,用1位(Bit)就足以表示; C语言规定,把内存的最高位作为符号位。以 int 为例,它占用 32 位的内存,0~30 位表示数值,31 位表示正负号。如下图所示: 在编程语言中,计数往往是从0开始,

  • 本文向大家介绍python中找出numpy array数组的最值及其索引方法,包括了python中找出numpy array数组的最值及其索引方法的使用技巧和注意事项,需要的朋友参考一下 在list列表中,max(list)可以得到list的最大值,list.index(max(list))可以得到最大值对应的索引 但在numpy中的array没有index方法,取而代之的是where,其又是li

  • 问题内容: 我有一个程序,该程序读取两个实数,然后打印出这两个之间的所有数字,这些数字可以被2或3或5整除。该程序可以正常工作,但是当用户输入两个非常大的数字时(例如1122222123333)和214123324434434),程序需要很长时间才能计算出结果。我想以某种方式修复该程序,以便即使对于大量结果也将立即打印出来。 到目前为止,这是我的代码: 问题答案: 好吧,您根本不需要循环。 您知道

  • 我最近把我的应用上传到了谷歌Playstore。我使用错误报告器跟踪崩溃。应用程序工作正常,但经常出现HttpHostConnectException。在进行每次网络通话之前,我都会检查互联网连接。造成这一例外的原因还有其他原因吗?如何避免? 附言:在测试/调试我的应用程序时,我从来没有遇到过这个异常。

  • 问题内容: 我有一个非常基本的问题。 假设我调用一个函数,例如 如何获得以返回x的功能,以便可以将x用作另一个函数的输入或在程序主体中使用变量? 当我使用return并在另一个函数中调用变量时,我得到了NameError。 问题答案: def foo(): x = ‘hello world’ return x # return ‘hello world’ would do, too