Python 返回列表列表中的最小元素值

Python 返回列表列表中的最小元素值,python,Python,给出如下列表: [["fileA",7],["fileB",4],["fileC",17],["fileD",15]] 如何返回与最小值关联的第一个元素?在本例中为fileB,因为它的最小值为4。我猜最短的方法是使用列表理解。事实上,列表理解并不是最好的工具。相反,您应该使用、its和: 在不导入任何内容的情况下,您可以执行以下操作: min(lst, key = lambda x: x[1])[0] 我想出了一个奇怪的想法,除了简单的生成器表达式外,它什么都不用: min((x[1], x

给出如下列表:

[["fileA",7],["fileB",4],["fileC",17],["fileD",15]]

如何返回与最小值关联的第一个元素?在本例中为fileB,因为它的最小值为4。我猜最短的方法是使用列表理解。

事实上,列表理解并不是最好的工具。相反,您应该使用、its和:


在不导入任何内容的情况下,您可以执行以下操作:

min(lst, key = lambda x: x[1])[0]

我想出了一个奇怪的想法,除了简单的生成器表达式外,它什么都不用:

min((x[1], x[0]) for x in lst)[1]

它基于这样一个事实:默认情况下,最小化是在元组/列表的第一个元素上完成的

您可能只需要将数据转换为字典,因为这似乎比拥有列表列表更明智。这样,您就可以更轻松地操作和访问数据

myLists = [["fileA",7],["fileB",4],["fileC",17],["fileD",15]]
myDict = dict(myLists)
min(myDict, key=myDict.get)
# 'fileB'

这实际上不是一个列表。这是一个生成器表达式。@iCodez True,已编辑。我想这就是OP在谈到列表理解或myDict=dictmyLists时的意思:虽然这不是当前问题的最佳答案,但如果列表用于其他事情,这可能是最好的选择。@gnibbler Cool,不知道它会自动适当转换。虽然在听写理解中基本上是一样的。我想说@sashkello的答案更好,根据这个答案:@Mehdi这是2010年的答案,我不确定从那以后是否有什么变化,但它可能已经改变了。
myLists = [["fileA",7],["fileB",4],["fileC",17],["fileD",15]]
myDict = dict(myLists)
min(myDict, key=myDict.get)
# 'fileB'