繁体   English   中英

如何在字典中以最大值作为最大值来获取最大值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM