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))