gpt4 book ai didi

arrays - 在坐标列表中查找最右上角的坐标

转载 作者:行者123 更新时间:2023-12-04 14:15:35 24 4
gpt4 key购买 nike

假设我有一个 (x, y) 坐标列表。一个这样的列表是这样的:

coords = [(7, 37), (6, 38), (6, 37), (7, 38), (6, 39), (7, 39), (6, 40), (7, 40), (6, 41), (7, 41), (6, 42), (7, 42), (6, 43), (7, 43), (6, 44), (7, 44), (6, 45), (7, 45), (6, 46), (7, 46), (6, 47), (7, 47), (6, 48), (7, 48), (6, 49), (7, 49), (6, 50), (7, 50), (6, 51), (7, 51), (6, 52), (7, 52), (6, 53), (7, 53), (6, 54), (7, 54), (6, 55), (7, 55), (6, 56), (7, 56), (6, 57), (7, 57)]

现在说我想找到 右上角由这些坐标形成的矩形的大部分角。

最初,我以为我可以做 max(zip(*coords)[0]), min(zip(*coords)[1]) .这会给我最大的 x 值和最大的 Y 值。但是,这点不能保证在列表中。

右下角可以通过 max(coords) 找到.左上角由 min(coords) 找到.但是如果我想找到右上角, 什么是最有效的方法来做到这一点。

我可以遍历列表,对于每个值,计算它与 max(zip(*coords)[0]), min(zip(*coords)[1]) 的距离。 .但是对于较大的点列表,对每个值执行平方根并不是很有效。

有没有一种快速的方法可以在大列表中找到右上角的点?

最佳答案

我找到了这个解决方案,我希望它对你有用:

top_right = max(coords, key=lambda x: (x[0], -x[1]))
编辑:我没有看到这个问题是 5 年前提出的,哈哈。

关于arrays - 在坐标列表中查找最右上角的坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33389876/

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