【发布时间】:2014-03-24 10:25:46
【问题描述】:
假设我有一个清单:
stuff = [[5,3,8],[2,4,7],[14,5,9]]
每个子列表的格式为[x,y,z]。
我想为子列表中的第三个条目找到此列表的最小值,即z=7。然后我想打印出该子列表的第一个值x。
ex) z 的最小值出现在x = 2。
【问题讨论】:
标签: python list selection minimum
假设我有一个清单:
stuff = [[5,3,8],[2,4,7],[14,5,9]]
每个子列表的格式为[x,y,z]。
我想为子列表中的第三个条目找到此列表的最小值,即z=7。然后我想打印出该子列表的第一个值x。
ex) z 的最小值出现在x = 2。
【问题讨论】:
标签: python list selection minimum
您可以通过内置的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)
【讨论】:
您可以使用带有key 参数的内置min 函数,像这样
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]
对于 stuff 的每个元素,分配给key 参数的函数将被调用。现在,最小值将仅根据该函数返回的值来确定。
【讨论】:
min 提供的文档链接。 :)