📜  Python|列表中频率最高的元素

📅  最后修改于: 2022-05-13 01:54:42.501000             🧑  作者: Mango

Python|列表中频率最高的元素

这是程序员经常遇到的最基本的操作之一。无论是开发还是竞争性编程,掌握此实用程序都非常重要,因为它有助于执行许多涉及此任务作为其子任务的任务。让我们讨论实现此操作的各种方法。

方法#1:朴素的方法
作为蛮力方法,我们只计算所有元素,然后返回元素整体计数,最后保持最大值。这是遇到此问题时可以考虑执行的基本方法。

# Python3 code to demonstrate 
# to get most frequent element
# using naive method
  
# initializing list
test_list = [9, 4, 5, 4, 4, 5, 9, 5, 4]
  
# printing original list
print ("Original list : " + str(test_list))
  
# using naive method to 
# get most frequent element
max = 0
res = test_list[0]
for i in test_list:
    freq = test_list.count(i)
    if freq > max:
        max = freq
        res = i
      
# printing result
print ("Most frequent number is : " + str(res))

输出 :

Original list : [9, 4, 5, 4, 4, 5, 9, 5, 4]
Most frequent number is : 4

方法 #2:使用max() + set()
将列表转换为集合并针对列表中每个数字的计数最大化函数,这个任务可以轻松完成,也是最优雅的实现方式。

# Python3 code to demonstrate 
# to get most frequent element
# using max() + set()
  
# initializing list
test_list = [9, 4, 5, 4, 4, 5, 9, 5, 4]
  
# printing original list
print ("Original list : " + str(test_list))
  
# using max() + set() to 
# get most frequent element
res = max(set(test_list), key = test_list.count)
      
# printing result
print ("Most frequent number is : " + str(res))

输出 :

Original list : [9, 4, 5, 4, 4, 5, 9, 5, 4]
Most frequent number is : 4

方法#3:使用statistics.mode()
模式表示数学中的最大频率元素, Python将整个库用于统计函数,这也可用于实现此任务。

# Python3 code to demonstrate 
# to get most frequent element
# using statistics.mode()
import statistics
  
# initializing list
test_list = [9, 4, 5, 4, 4, 5, 9, 5, 4]
  
# printing original list
print ("Original list : " + str(test_list))
  
# using statistics.mode() to 
# get most frequent element
res = statistics.mode(test_list)
      
# printing result
print ("Most frequent number is : " + str(res))

输出 :

Original list : [9, 4, 5, 4, 4, 5, 9, 5, 4]
Most frequent number is : 4

方法 #4:使用collections.Counter.most_common()
实现这一特定任务的鲜为人知的方法, Counter()使用 most_common函数在一行中实现这一目标。这是实现这一目标的创新和不同的方式。

# Python3 code to demonstrate 
# to get most frequent element
# using collections.Counter.most_common()
from collections import Counter
  
# initializing list
test_list = [9, 4, 5, 4, 4, 5, 9, 5, 4]
  
# printing original list
print ("Original list : " + str(test_list))
  
# using most_common to 
# get most frequent element
test_list = Counter(test_list)
res = test_list.most_common(1)[0][0]
      
# printing result
print ("Most frequent number is : " + str(res))

输出 :

Original list : [9, 4, 5, 4, 4, 5, 9, 5, 4]
Most frequent number is : 4