如何在Python字典中找到值最多(不是最高)的键?

如何在Python字典中找到值最多(不是最高)的键?,python,python-3.x,loops,Python,Python 3.x,Loops,假设我们有这本词典(一本大词典的样本): 我希望返回2(键),因为它是值最多的键(6)。因此,理想情况下,输出如下所示: 2: 6 (键2,6值) 如何在Python中实现这一点 我尝试过执行例如打印(len(dic[0]),它返回3。但是,我希望Python遍历每个键并为我返回最大长度,而不必手动遍历每个键。使用带有自定义键的内置函数: dic = {0: [2324, 4353, 342], 1: [242453, 542], 2: [44, 353, 5342

假设我们有这本词典(一本大词典的样本):

我希望返回2(键),因为它是值最多的键(6)。因此,理想情况下,输出如下所示:

2: 6
(键2,6值)

如何在Python中实现这一点

我尝试过执行例如打印(len(dic[0]),它返回3。但是,我希望Python遍历每个键并为我返回最大长度,而不必手动遍历每个键。

使用带有自定义
键的内置函数:

dic = {0: [2324, 4353, 342],
       1: [242453, 542],
       2: [44, 353, 5342, 5342, 5342, 534]}    
print(max(dic.items(), key=lambda v: len(v[1]))[0])
应该打印

2

基本上,您是在告诉
max
函数在比较元素时使用元组中第二个(
[1]
)值的长度。
.items()
方法将字典转换为元组迭代器,因此第一个元素是键,第二个元素是值。

假设您的数据的格式与之类似:

data = {
     0: [1, 2, 3, 4, 5],
     1: [1, 2, 5],
     2: [1, 6, 9, 3, 8, 9],
     5: [7]
}
下一步可能是制作包含对“key:len(value)”的dict,其中key和value由原始数据dict给出,例如:

dict_of_key_length_pairs = {k: len(v) for k, v in data.items()}
print(dict_of_key_length_pairs)

{0: 5, 1: 3, 2: 6, 5: 1}
然后我们需要得到最大值的键(例如,键2为6):


max(dic,key=lambda x:len(dic[x]))
这是否回答了您的问题?
dict_of_key_length_pairs = {k: len(v) for k, v in data.items()}
print(dict_of_key_length_pairs)

{0: 5, 1: 3, 2: 6, 5: 1}
max(dict_of_key_length_pairs, key=dict_of_key_length_pairs.get)