Python 中在字典中查找出现次数最多的值
Python 中要在字典中查找最频繁的值:
-
使用
dict.values()
方法获取字典值的视图。 -
使用
collections.Counter()
类创建一个计数器对象。 -
使用
most_common()
方法获取字典中出现次数最多的值。
from collections import Counter
my_dict = {
'a': 1,
'b': 1,
'c': 1,
'd': 2,
'e': 2,
'f': 3
}
counter = Counter(my_dict.values())
most_common_value = counter.most_common(1)[0]
print(most_common_value) # 👉️ (1, 3)
print(most_common_value[0]) # 👉️ 1
most_common_values = counter.most_common(2)
print(most_common_values) # 👉️ [(1, 3), (2, 2)]
如果我们需要不使用任何导入的解决方案,请向下滚动到下一个副标题。
dict.values
方法返回字典值的新视图。
from collections import Counter
my_dict = {
'a': 1,
'b': 1,
'c': 1,
'd': 2,
'e': 2,
'f': 3
}
# 👇️ dict_values([1, 1, 1, 2, 2, 3])
print(my_dict.values())
我们使用 collections.Counter
类来计算每个值的出现次数。
collections
模块中的 Counter
类是 dict 类的子类。
该类基本上是键数对的映射。
from collections import Counter
my_dict = {
'a': 1,
'b': 1,
'c': 1,
'd': 2,
'e': 2,
'f': 3
}
counter = Counter(my_dict.values())
print(counter) # 👉️ Counter({1: 3, 2: 2, 3: 1})
Counter 对象实现了 most_common()
方法,该方法返回 N 个最常见元素的列表及其从最常见到最少的计数。
from collections import Counter
my_dict = {
'a': 1,
'b': 1,
'c': 1,
'd': 2,
'e': 2,
'f': 3
}
counter = Counter(my_dict.values())
most_common_value = counter.most_common(1)[0]
print(most_common_value) # 👉️ (1, 3)
print(most_common_value[0]) # 👉️ 1
Python 索引是从零开始的,因此列表中的第一项的索引为 0,最后一项的索引为 -1 或 len(my_list) - 1
。
如果没有向 most_common 方法提供参数,它将列出所有元素计数。
该方法返回一个元组列表,其中第一个元素是列表项,第二个元素是出现的次数。
我们还可以使用此方法获取字典中最常见的 N 个值。
from collections import Counter
my_dict = {
'a': 1,
'b': 1,
'c': 1,
'd': 2,
'e': 2,
'f': 3
}
counter = Counter(my_dict.values())
most_common_values = counter.most_common(2)
print(most_common_values) # 👉️ [(1, 3), (2, 2)]
我们将 2 作为参数传递给 most_common()
方法,因此它返回最常见的 2 个字典值。
或者,我们可以使用 max
函数。
使用 max() 查找字典中出现频率最高的值
要在字典中查找最频繁的值:
-
使用
max()
函数。 - 将键参数传递给函数。
-
使用
list.count()
方法计算每个值的出现次数。 -
max()
函数将返回最常见的值。
my_dict = {
'a': 1,
'b': 1,
'c': 1,
'd': 2,
'e': 2,
'f': 3
}
values = list(my_dict.values())
most_common_value = max(set(values), key=values.count)
print(most_common_value) # 👉️ 1
我们使用 dict.values()
方法来获取字典值的视图并将视图对象转换为列表。
max
函数返回可迭代对象中的最大项或两个或多个参数中最大的一个。
my_list = [15, 45, 30]
result = max(my_list)
print(result) # 👉️ 45
max
函数也有一个可选的键参数。
key
参数指定一个单参数排序函数。
我们使用 set()
函数将列表转换为集合对象以删除任何重复项。
你可以想象:
-
集合中的每个元素都会调用
list.count()
函数。 - 该函数返回值在列表中出现的次数。
-
max()
函数返回最常见的值。
my_dict = {
'a': 1,
'b': 1,
'c': 1,
'd': 2,
'e': 2,
'f': 3
}
values = list(my_dict.values())
most_common_value = max(set(values), key=values.count)
print(most_common_value) # 👉️ 1
list.count()
方法接受一个值并返回所提供的值在列表中出现的次数。
my_dict = {
'a': 1,
'b': 1,
'c': 1,
'd': 2,
'e': 2,
'f': 3
}
values = list(my_dict.values())
print(values) # 👉️ [1, 1, 1, 2, 2, 3]
print(values.count(1)) # 👉️ 3
print(values.count(2)) # 👉️ 2
print(values.count('abc')) # 👉️ 0
选择哪种方法是个人喜好的问题。 我会使用 Counter
类,因为我发现 most_common
方法非常直观。
相关文章
在 C 语言中实现字典
发布时间:2023/05/07 浏览次数:196 分类:C语言
-
本文介绍了如何在 C 语言中实现字典。使用 hcreate、hsearch 和 hdestroy 在 C 语言中实现字典功能
Python for 循环中的下一项
发布时间:2023/04/26 浏览次数:179 分类:Python
-
本文讨论了 Python 中的 for 循环以及如何通过使用 for 循环和示例来跳过列表的第一个元素。
Python While 循环用户输入
发布时间:2023/04/26 浏览次数:148 分类:Python
-
我们可以在 while 循环中使用 input() 函数来输入数据,直到在 Python 中满足某个条件。
在 Python 中将整数转换为罗马数字
发布时间:2023/04/26 浏览次数:87 分类:Python
-
本篇文章将介绍在 Python 中将整数转换为罗马数字。以下是一个 Python 程序的实现,它将给定的整数转换为其等效的罗马数字。
在 Python 中将罗马数字转换为整数
发布时间:2023/04/26 浏览次数:144 分类:Python
-
本文讨论如何在 Python 中将罗马数字转换为整数。 我们将使用 Python if 语句来执行此操作。 我们还将探讨在 Python 中将罗马数字更改为整数的更多方法。
在 Python 中读取 gzip 文件
发布时间:2023/04/26 浏览次数:70 分类:Python
-
本篇文章强调了压缩文件的重要性,并演示了如何在 Python 中使用 gzip 进行压缩和解压缩。
在 Python 中锁定文件
发布时间:2023/04/26 浏览次数:141 分类:Python
-
本文解释了为什么在 Python 中锁定文件很重要。 这讨论了当两个进程在没有锁的情况下与共享资源交互时会发生什么的示例,为什么在放置锁之前知道文件状态很重要,等等
在 Python 中将 PDF 转换为文本
发布时间:2023/04/26 浏览次数:196 分类:Python
-
在本教程中,我们将学习如何使用 Python 使用 PyPDF2、Aspose 和 PDFminer 将 PDF 文档转换为文本文件。