[英]For a dict of list values, find the key with the maximum value for each index in the list
我有一个字典,其中有几个名字作为键,每个名字都有一个包含一些数字的列表的值。 我想为列表值的每个索引获取具有最大值的名称(键)。
我尝试编写以下代码但它不起作用,我收到错误AttributeError: 'str' object has no attribute 'keys'
我不知道为什么。
这是代码:
from Scheduler import Scheduler
class MaxSNR(Scheduler):
def allocuteUR(self, mapMobileMkn, tailleFrequence=1):
mapUniteResource = ["NonAllouer" for x in range(tailleFrequence)]
mknMax = max(mapMobileMkn, key=mapMobileMkn.get)
return mknMax
if __name__ == "__main__":
m = MaxSNR()
mapUniteResource = m.allocuteUR({'patrick': [40, 5], 'michel': [8, 3], 'edgard': [1, 10]}, tailleFrequence=2)
for key in mapUniteResource.keys:
nombre = MaxSNR(mapUniteResource)
print(nombre)
对于上面的示例,我希望输出为:
patrick
edgard
因为 40 是第一个索引的最大值,而 10 是第二个索引的最大值。
names
和values
会更方便。zip
这些值以遍历索引匹配项。d = {'patrick': [40, 5], 'michel': [8, 3], 'edgard': [1, 10]}
names, values = zip(*d.items())
for column in zip(*values):
index = max(range(len(column)), key=lambda i: column[i])
print(index, names[index])
会给:
0 patrick
2 edgard
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.