从元组列表返回具有最小y值的元组

塞布

我试图返回一个元组列表中最小的第二个索引值(y值)的元组。如果有两个Y值最低的元组,则选择X值最大的元组(即第一个索引)。

例如,假设我有元组:

x = [(2, 3), (4, 3), (6, 9)]

返回的值应为(4, 3)(2, 3)是候选,因为x[0][1]3(相同x[1][1]),然而,x[0][0]是小于x[1][0]

到目前为止,我已经尝试过:

start_point = min(x, key = lambda t: t[1])

但是,这仅检查第二个索引,并且如果两个元组的第二个索引相等,则不比较两个元组的第一个索引。

马丁·彼得斯(Martijn Pieters)

x包含在从键返回的元组中;如果该y存在平局,则将使用键中的第二个元素要反转比较(从最小到最大),只需取反该值即可:

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

毕竟-4小于-2

演示:

>>> x = [(2, 3), (4, 3), (6, 9)]
>>> min(x, key=lambda t: (t[1], -t[0]))
(4, 3)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档