Select 个具有相同长度值的键,这是字典中计数最高的列表
Select keys with same length of value which is highest count list in dictionary
我有一个排序的 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 获取数组中的真实值,然后提取它
我的代码:
z = np.array(arr) #arr variable has the size of lists i.e arr = [3,3,3,2,1]
p = len(z[z == z[0]]) #To Check how many highest count is SAME and store the count in p variable
print(z >= z[0])
print(list(k)[0:p])
输出:-
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]}
我有一个排序的 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 获取数组中的真实值,然后提取它 我的代码:
z = np.array(arr) #arr variable has the size of lists i.e arr = [3,3,3,2,1]
p = len(z[z == z[0]]) #To Check how many highest count is SAME and store the count in p variable
print(z >= z[0])
print(list(k)[0:p])
输出:-
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]}