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

时间:2019-04-20 23:52:29

标签: python dictionary

我正在尝试从字典中获取最大值,字典将值作为列表并返回键和值。

我的字典看起来像这样:

d = {'Miami': [1, 12, 7, 12], 'New York': [21, 12, 1, 8]}

我想得到答案:

New York 21

有什么建议吗?

3 个答案:

答案 0 :(得分:5)

您可以在字典中找到最大值,然后找到其键的最大值:

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

答案 1 :(得分:2)

如果您的数据格式正确:

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

否则,您必须先删除',然后确认。

答案 2 :(得分:1)

如果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'])

最后一步是很好地打印结果。但我坚信,您将能够自己弄清楚这一点。