我有一个列表列表,我应该找到第二个元素有最大值的子列表。
我按如下方式实现了它,但我认为它有点“次优”:-)
def max_value(inputlist):
return max([sublist[-1] for sublist in inputlist])
然后
maxvalue = max_value(listofcounties)
for result in listofcounties:
if result[1] == maxvalue:
return result[0]
有一种方法可以更精确地实现这一点吗?
非常感谢你的任何暗示!
拜伊
法维奥
最佳答案
max
接受一个可选的key
参数;max
比较key
函数的返回值以确定哪个值更大。
maxvalue = max(listofcounties, key=lambda x: x[-1])
>>> listofcounties = [['county1', 10], ['county2', 20], ['county3', 5]]
>>> max(listofcounties, key=lambda x: x[-1]) # by using `key`, max compares 10, 20, 5
['county2', 20]