Python 选择具有相同长度值的键,该值是字典中的最高计数列表

Python 选择具有相同长度值的键,该值是字典中的最高计数列表,python,python-3.x,numpy,dictionary,defaultdict,Python,Python 3.x,Numpy,Dictionary,Defaultdict,我有一个排序的defaultdict,比如: k = {'a':[3,4,5] , 'x':[5,4,11] , 'c':[1,3,4] , 'l': [2,3], 'h':[1]} 我想要的是只获得具有最大或最大相等长度值的关键帧 预期产出: {'a':[3,4,5] , 'x':[5,4,11] , 'c':[1,3,4]} or [a,b,c] 我使用numpy来获取数组中的真值,然后提取它 我的代码: 输出:- True True True False False [a,x,c]

我有一个排序的
defaultdict
,比如:

k = {'a':[3,4,5] , 'x':[5,4,11] , 'c':[1,3,4] , 'l': [2,3], 'h':[1]}
我想要的是只获得具有最大或最大相等长度值的关键帧

预期产出:

{'a':[3,4,5] , 'x':[5,4,11] , 'c':[1,3,4]} or [a,b,c]
我使用numpy来获取数组中的真值,然后提取它 我的代码:

输出:-

True True True False False

[a,x,c]

所以我的问题是,有没有不使用numpy的方法可以做到这一点?

一种方法是计算最大长度,然后使用字典理解

d = {'a':[3,4,5] , 'x':[5,4,11] , 'c':[1,3,4] , 'l': [2,3], 'h':[1]}

max_len = max(map(len, d.values()))

res = {k: v for k, v in d.items() if len(v) == max_len}

print(res)

{'a': [3, 4, 5], 'x': [5, 4, 11], 'c': [1, 3, 4]}

好极了。!非常感谢。
d = {'a':[3,4,5] , 'x':[5,4,11] , 'c':[1,3,4] , 'l': [2,3], 'h':[1]}

max_len = max(map(len, d.values()))

res = {k: v for k, v in d.items() if len(v) == max_len}

print(res)

{'a': [3, 4, 5], 'x': [5, 4, 11], 'c': [1, 3, 4]}