所以,问题是,我有一个由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写作:
我仍然是一个新手,我尝试了这个并且有效,我希望您会发现它易于阅读。但是,我会推荐一个更简洁的解决方案,因为有经验的用户已经给出了:)
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
还有,如果出现重复的数字,您会怎么做,需要考虑一下。
你可以试试这样,
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)
使用基本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),程序需要很长时间才能计算出结果。我想以某种方式修复该程序,以便即使对于大量结果也将立即打印出来。 到目前为止,这是我的代码: 问题答案: 好吧,您根本不需要循环。 您知道
问题内容: 我需要一个与一系列gui事件几乎完全相同的回调函数。该函数的行为会有所不同,具体取决于调用该事件的事件。对我来说,这似乎是一个简单的案例,但是我无法弄清楚函数的这种奇怪行为。 因此,我在下面有以下简化代码: 此代码的输出是: 我期望: 为什么使用迭代器搞砸了? 我试过使用Deepcopy: 但这有同样的问题。 问题答案: 这里的问题是m变量(参考)来自周围的范围。仅参数保留在范围中。
问题内容: 我有一个非常基本的问题。 假设我调用一个函数,例如 如何获得以返回x的功能,以便可以将x用作另一个函数的输入或在程序主体中使用变量? 当我使用return并在另一个函数中调用变量时,我得到了NameError。 问题答案: def foo(): x = ‘hello world’ return x # return ‘hello world’ would do, too