Python:在列表中查找函数返回最小值的项目?

时间:2014-03-30 12:53:57

标签: python list-comprehension

我有一个带坐标和另一个点的点列表。

列表中的示例:

(45.1531912,5.7184742),(45.1531912,5.7184742),(45.1531113,5.7184544),(45.1525337,5.718298),(45.1525337,5.718298),

一点:

(45.1533837,5.7185242)

功能:

def dist(point1,point2)
   ....
   return aDistance

是否有一个python one liner(list-comprehension?)在列表中找到一个给定函数返回列表最小值的点?

1 个答案:

答案 0 :(得分:8)

min() function已经有一个key参数,不需要列表理解。

假设您想要找到列表中距离原点最近的点:

min(list_of_points, key=lambda p: distance(p, (0, 0)))

会找到它(给定distance()函数来计算两点之间的距离。)

来自文档:

  

可选的参数指定一个单参数排序函数,如用于list.sort()的函数。密钥参数(如果提供)必须采用关键字形式(例如,min(a,b,c,key=func))。