我有一个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)
?
答案 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)