我有以下问题(我是python中的初学者)
从坐标列表中,我想要那些距离最大的坐标。我想解决它如下: -
1-我有一个坐标列表C = [a,b,c,d]
2-我想计算每个坐标对之间的距离(d);这个距离是用Molecular Dynamics库的函数计算的,所以我需要使用它
3-然后我想创建一个数组为[[a,b,d1],[a,c,d2] ....]的数组。
4-然后我想比较距离,看看哪一对有最大距离,即元素max([:,2])
5-最后我想要一个具有最大距离
的坐标输出任何帮助将不胜感激
答案 0 :(得分:1)
这是一种可能的方法:首先使用<use>
来制作坐标的所有可能的两个坐标组合。然后根据坐标对之间的距离对它们进行排序。将排序列表中的最后一个作为最大距离对:
itertools.combinations
<强>输出强>
from itertools import combinations
coordinates = [(28, 15), (94, 58), (12, 34), (23, 56), (83, 55), (98, 17)]
def calculate_distance(coordinate_pair):
(x1, y1), (x2, y2) = coordinate_pair
return ((x2 - x1) ** 2 + (y2 - y1) ** 2) ** 0.5
print(sorted(combinations(coordinates, 2), key=calculate_distance)[-1])