从子列表列表中选择最小值,并以最小值显示该子列表中的另一个值

时间:2014-02-22 19:24:35

标签: python list selection minimum

说我有一个清单:

stuff =  [[5,3,8],[2,4,7],[14,5,9]]

其中每个子列表的格式为[x,y,z]

我想找到子列表中第三个条目的最小值,即z=7。然后我想打印出该子列表的第一个值x

ex)z的最小值出现在x = 2

2 个答案:

答案 0 :(得分:3)

您可以将内置min函数与key参数一起使用,就像这样

stuff = [[5,3,8],[2,4,7],[14,5,9]]
print min(stuff, key = lambda x: x[2])[0]   # 2

为了使其更具可读性,您可以像这样解压缩

print min(stuff, key = lambda (x, y, z): z)[0]

对于每个元素,将调用分配给key参数的函数。现在,最小值将根据该函数返回的值确定。

答案 1 :(得分:2)

您可以传递内置的min函数key来访问每个子列表中的第三个元素:

<强>演示

>>> stuff = [[5,3,8],[2,4,7],[14,5,9]]
>>> x, y, z = min(stuff, key=lambda arr: arr[2])
>>> x, y, z
(2, 4, 7)