gpt4 book ai didi

python - 如何使用内置函数在列表中找到最接近目标的值?

转载 作者:太空宇宙 更新时间:2023-11-04 08:27:59 25 4
gpt4 key购买 nike

例如,给定

from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
points = [Point(x=1.0, y=1.0), Point(x=2.0, y=2.0), Point(x=5.0, y=5.0)]
target = Point(x=4.5, y=5.0)
closest_point = find_closest(target, points)

我想返回 Point(x=5.0, y=5.0)。理想情况下,我想使用一个内置函数,它采用 (list, target, comp) 其中 comp 采用 (a, b) -> float 目标是从 list 中找到最小化 (a, target)a,例如:

closest_point = find_closest(points, target, dist) # where dist is (a.x-b.x)**2 + (a.y-b.y)**2

我对此感兴趣的原因是因为我发现自己编写了 3 个重复的函数,其中唯一的区别是 dist 函数(并且它们使用不同的字段来计算它)。

最佳答案

min 函数可以接受一个key 参数,这是一个用作比较器的函数。在这种情况下,您可以编写一个 lambda 来计算每个点到 target 的距离。

>>> min(points, key=lambda pt : sqrt((target.x - pt.x)**2 + (target.y - pt.y)**2))
Point(x=5.0, y=5.0)

关于python - 如何使用内置函数在列表中找到最接近目标的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55401708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com