我正在尝试从字典中获取最大值,字典将值作为列表并返回键和值。
我的字典看起来像这样:
d = {'Miami': [1, 12, 7, 12], 'New York': [21, 12, 1, 8]}
我想得到答案:
New York 21
有什么建议吗?
答案 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'])
最后一步是很好地打印结果。但我坚信,您将能够自己弄清楚这一点。