我有元组列表,我希望元组在索引1
处具有最小值。例如,如果我的列表如下:
a =[('a', 2), ('ee', 3), ('mm', 4), ('x', 1)]
我希望返回的元组为('x', 1)
。
目前我正在使用sorted
函数来获得以下结果:
min=sorted(a, key=lambda t: t[1])[0]
有更好的方法吗?也许使用min
函数?
答案 0 :(得分:8)
您可以将min()
函数与key
参数一起使用,以便在列表中找到具有最小值的元组。无需对列表进行排序。因此,您的min
电话应该是:
>>> min(a, key=lambda t: t[1])
('x', 1)
使用operator.itemgetter()
代替 lambda表达式更好;因为 itemgetter 比较快。在这种情况下,对min
函数的调用应该是:
>>> from operator import itemgetter
>>> min(a, key=itemgetter(1))
('x', 1)
注意:min()
是Python中的内置函数。您不应该将它用作变量名。
答案 1 :(得分:1)
这也有效:
min([x[::-1] for x in a])[::-1]
# ('x', 1)