2024-06-15 09:44:02 发布
网友
我有以下问题(我是python的初学者)
从一个坐标列表中,我想要那些有最大距离的坐标。我想把它解决为下图:-你知道吗
我有一个坐标列表C=[a,b,C,d]
2-我想计算每个坐标对之间的距离(d);这个距离是用分子动力学库的函数计算的,所以我需要使用它
3-然后我想用[[a,b,d1],[a,c,d2]…]的值创建一个数组
4-然后我想比较一下距离,看看在所有对中哪个有最大的距离,即element max([:,2])
最后,我想要一个最大距离的坐标输出
任何帮助都将不胜感激
这里有一种可能的方法:首先使用itertools.combinations使所有可能的两个坐标组合成为您的坐标。然后根据坐标对之间的距离对它们进行排序。将排序列表中的最后一个作为最大距离对:
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])
输出
((12, 34), (98, 17))
这里有一种可能的方法:首先使用
itertools.combinations
使所有可能的两个坐标组合成为您的坐标。然后根据坐标对之间的距离对它们进行排序。将排序列表中的最后一个作为最大距离对:输出
相关问题 更多 >
编程相关推荐