从最小y值的元组中获取最大x值的最快方法?

时间:2017-06-01 12:31:29

标签: python

我有一个x和y值元组的列表listPts,例如:

  

[(100.0,400.0),(200.0,600.0),(300.0,600.0),(400.0,400.0)]

使用listPts.index(min(listPts, key=operator.itemgetter(1))我获取400作为最小y值。如您所见,两个元组的y值为(100.0, 400.0)(400.0, 400.0)

获取具有最大x值的元组的最快,最干净的方法是什么?在这种情况下(400.0, 400.0)

1 个答案:

答案 0 :(得分:3)

您可以使用键来比较两个值,例如:

>>> min(listPts, key=lambda x: (x[1], -x[0]))
(400.0, 400.0)

如果您想要索引,您还可以使用enumerate()并避免拨打index(),例如:

>>> index, result = min(enumerate(listPts), key=lambda x: (x[1][1], -x[1][0]))
>>> index
3
>>> result
(400.0, 400.0)