我试图返回一个元组列表中最小的第二个索引值(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])
但是,这仅检查第二个索引,并且如果两个元组的第二个索引相等,则不比较两个元组的第一个索引。
将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] 删除。
我来说两句