I am trying to return a tuple the smallest second index value (y value) from a list of tuples. If there are two tuples with the lowest y value, then select the tuple with the la
Include the x
value in a tuple returned from the key; this second element in the key will be then used when there is a tie for the y
value. To inverse the comparison (from smallest to largest), just negate that value:
min(x, key=lambda t: (t[1], -t[0]))
After all, -4
is smaller than -2
.
Demo:
>>> x = [(2, 3), (4, 3), (6, 9)]
>>> min(x, key=lambda t: (t[1], -t[0]))
(4, 3)