[英]How to get max value in a dictionary with value as lits?
我试图从我的字典中获取最大值,该字典有一个列表作为值,然后返回键和值。
我的字典看起来像这样:
d = {'Miami': [1, 12, 7, 12], 'New York': [21, 12, 1, 8]}
我想得到答案:
New York 21
有什么建议么?
您可以在字典中找到最大值,然后找到其键的最大值:
d = {'Miami': [1, 12, 7, 12], 'New York': [21, 12, 1, 8]}
m = max(d, key=lambda x:max(d[x]))
print(f'{m} {max(d[m])}')
输出:
New York 21
如果数据格式正确:
d = {'Miami': [1, 12, 7, 12], 'New York': [21, 12, 17, 8]}
def getmaxvalues(citys):
for city in citys:
print("The biggest value in {0} is {1}".format(city, max(citys[city])))
def overallmax(citys):
overallmax = max(citys, key=max)
print("{0} {1}".format(overallmax, max(citys[overallmax])))
getmaxvalues(d)
overallmax(d)
->迈阿密的最大价值是12
->纽约的最大价值是21
->纽约21
否则,您必须先删除'
和'
再确认。
如果d
包含整数列表(不是字符串),则可以将nativ python max
函数与key
参数一起使用:
>>> d = {'Miami': [1, 12, 3], 'New York': [21, 3, 4]}
>>> max(d.items(), key=lambda x: max(x[1]))
('New York', [21, 3, 4])
key
关键字控制比较哪些值。 这里的键是一个lambda
对象,它在此处返回参数第二个条目的最大值。 输入的参数是字典的所有项目(键值对)。
如果需要使用字符串列表,则必须先将字符串转换为数字。 这很容易做到:
>>> d = {'Miami': ['1', '12', '3'], 'New York': ['21', '3', '4']}
>>> max(d.items(), key=lambda x: max(float(i) for i in x[1]))
('New York', ['21', '3', '4'])
最后一步是很好地打印结果。 但我真诚地相信您将能够弄清楚自己的情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.