Python 列表中出现频率最高的元素


许多统计数据分析试图找到给定值列表中频率最高的那些值。Python 提供多种方法,我们可以使用这些方法从给定列表中找到这样的值。以下是这些方法。

使用 Counter

collections 模块中的 Counter 函数提供了一个选项,可以直接找到给定列表中最常见的元素。我们有 most_common 函数,我们可以为其传递参数 1 以获取频率最高的单个元素,如果我们需要频率最高的两个元素,则传递 2。

示例

 在线演示

from collections import Counter

# Given list
listA = ['Mon', 'Tue','Mon', 9, 3, 3]

print("Given list : ",listA)

# Adding another element for each element
Newlist1 = Counter(listA).most_common(1)
Newlist2 = Counter(listA).most_common(2)


# Results
print("New list after duplication: ",Newlist1)
print("New list after duplication: ",Newlist2)

输出

运行以上代码将得到以下结果:

Given list : ['Mon', 'Tue', 'Mon', 9, 3, 3]
New list after duplication: [('Mon', 2)]
New list after duplication: [('Mon', 2), (3, 2)]

使用 mode

mode 是 Python 的 statistics 模块中提供的统计函数。它将输出频率最高的元素。如果有多个这样的元素,则首先遇到的频率最高的元素将是输出。

示例

from statistics import mode

# Given list
listA = ['Mon', 'Tue','Mon', 9, 3, 3]
listB = [3,3,'Mon', 'Tue','Mon', 9]
print("Given listA : ",listA)
print("Given listB : ",listB)

# Adding another element for each element
Newlist1 = mode(listA)
Newlist2 = mode(listB)

# Results
print("New listA after duplication: ",Newlist1)
print("New listB after duplication: ",Newlist2)

输出

运行以上代码将得到以下结果:

Given listA : ['Mon', 'Tue', 'Mon', 9, 3, 3]
Given listB : [3, 3, 'Mon', 'Tue', 'Mon', 9]
New listA after duplication: Mon
New listB after duplication: 3

更新于: 2020年5月5日

386 次浏览

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告