Seb*_*Seb 10 python tuples list min
我试图从元组列表返回一个元组最小的第二个索引值(y值).如果有两个具有最低y值的元组,则选择具有最大x值的元组(即第一个索引).
例如,假设我有元组:
x = [(2, 3), (4, 3), (6, 9)]
Run Code Online (Sandbox Code Playgroud)
返回的值应该是(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])
Run Code Online (Sandbox Code Playgroud)
但是,这只检查第二个索引,并且如果第二个索引的第二个索引是等价的,则不会比较两个元组的第一个索引.
Mar*_*ers 17
将x值包含在从键返回的元组中; 然后,当值存在平局时,将使用键中的第二个元素y.要反转比较(从最小到最大),只需否定该值:
min(x, key=lambda t: (t[1], -t[0]))
Run Code Online (Sandbox Code Playgroud)
毕竟,-4小于-2.
演示:
>>> x = [(2, 3), (4, 3), (6, 9)]
>>> min(x, key=lambda t: (t[1], -t[0]))
(4, 3)
Run Code Online (Sandbox Code Playgroud)