Python 最频数
是的,关于这个有很多话题。但我的问题不同。 我写了我的代码,它是Python 最频数,python,frequency,Python,Frequency,是的,关于这个有很多话题。但我的问题不同。 我写了我的代码,它是 A = [1,2,3,4,4,4,5,6,6,6,6,6,7,8,8,8,8,8,8,7,7] def countFreq(A): n=len(A) count=[0]*n # Create a new list initialized with '0' for i in range(n): count[A[i]]+= 1
A = [1,2,3,4,4,4,5,6,6,6,6,6,7,8,8,8,8,8,8,7,7]
def countFreq(A):
n=len(A)
count=[0]*n # Create a new list initialized with '0'
for i in range(n):
count[A[i]]+= 1 # increase occurrence for value A[i]
result = []
for x in count:
if x:
result.append(x)
return result
print(countFreq(A))
输出为
[1,1,1,3,1,5,3,6]
这意味着,有多少个数字,它计算的函数。
有一个“1”,有五个“6”和六个“8”等等
但我只想看看最频繁的数字。正如代码所示,只需看到8。
我该怎么办?请用我的密码给我指路。没有不同的代码。
我不想使用内置函数或任何现成的代码。
请在我的代码中找到一种方法
编辑:实际上,我想从我的代码输出中看到
A = [1,2,3,4,4,4,5,6,6,6,6,6,7,8,8,8,8,8,8,7,7]
Most-frequency number is : 8
或
或
我想要这个
编辑:在我的问题中,老师给我们一个提示,这是;
提示:您可以考虑在一个新的列表中记录每个数字的出现次数,其索引将映射到输入数字值。
请任何看到它的人,告诉我我的代码的方法…将您的
print()
语句更改为print(countFreq(a).index(max(countFreq(a)))+1)
您的代码有很多问题。一个更好的方法是重新构造逻辑,那就是使用字典
Python的方法是使用collections.Counter
或collections.defaultdict
:
A = [1,2,3,4,4,4,5,6,6,6,6,6,7,8,8,8,8,8,8,7,7]
from collections import defaultdict
def countFreq(A):
d = defaultdict(int)
for item in A:
d[item] += 1
maxval = max(d.values())
maxnum = [k for k, v in d.items() if v==maxval]
return maxnum
print(countFreq(A))
但由于我的学校原因,我没有被录取。有没有办法不使用现成的代码?@user9654395有一种方法,但它效率很低,需要循环,而循环是不需要的。你确定你不允许使用
max()
?@user9654395如果你不允许使用内置函数或方法,那么你为什么要使用range
,len
,.append
,和print
?@user9654395,我知道要点,但你能告诉我具体的要求吗。原因是你的问题与这些标准完全不同。是的,当然。问题是,他们不想要任何预定义的函数或类或对其代码的更改。我的学校收不到藏品。在这个问题上,老师给我们一个提示,这是“提示:你可以考虑在一个新的列表中记录每个数字的出现次数,它的索引将映射到输入的数字值。”你能用我的代码给我看一个方法吗?请我试了很多次,但没有找到。@Adi219,所有这些限制都需要在问题中明确(“我不想使用内置函数或任何现成的代码”不清楚)。在此之前,这个答案是可以接受的,即使它对OP没有帮助。也许下一个用户会发现它很有帮助。@Adi219我试过你的方法。但是你没有调用函数。当我写你的而不是我的印刷品。答案是14。这是错误的。@Adi219,问题是代码有太多问题。考虑到所有这些定义不明确的限制,请随意回答自己。你正确地理解了老师给你的暗示。现在您只需要列表中最高值的索引。否。索引没有什么不同。索引是0,1,2,…
-数组的第n个索引包含数字n的计数。@user9654395我想你知道必须首先调用函数。。。我已经编辑了我的答案(再一次!)我可以编辑我的答案来适应这个,但老实说,我认为没有必要。当然。它帮助我再次感谢你
A = [1,1,1,2,3,4]
most frequency number is : 1
A = [1,2,3,4,4,4,5,6,6,6,6,6,7,8,8,8,8,8,8,7,7]
from collections import defaultdict
def countFreq(A):
d = defaultdict(int)
for item in A:
d[item] += 1
maxval = max(d.values())
maxnum = [k for k, v in d.items() if v==maxval]
return maxnum
print(countFreq(A))