Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用多维列表存储(x,y)坐标并计算距离_Python_List - Fatal编程技术网

Python 使用多维列表存储(x,y)坐标并计算距离

Python 使用多维列表存储(x,y)坐标并计算距离,python,list,Python,List,我试图创建一个函数:计算点(点1,点2)之间的点距离,在这里我可以得到点1和点2,作为主函数中(x,y)形式的字符串。 此函数用于计算两点之间的距离。该函数获取两个列表作为参数:第一个列表包含起点的x和y坐标,另一个列表包含终点的x和y坐标。然后返回两点之间的距离。 这是我的半成品代码: def calculate_distance_between_points(point1, point2): point_list = [] text1 = point1.split("

我试图创建一个函数:计算点(点1,点2)之间的点距离,在这里我可以得到点1和点2,作为主函数中(x,y)形式的字符串。 此函数用于计算两点之间的距离。该函数获取两个列表作为参数:第一个列表包含起点的x和y坐标,另一个列表包含终点的x和y坐标。然后返回两点之间的距离。 这是我的半成品代码:

def calculate_distance_between_points(point1, point2):
    point_list = []
    text1 = point1.split(",")
    text2 = point2.split(",")
    for i in range(2):
        row = [0.0] * 2
        for j in range(1):
            row[1] = float(text1[j])
            row[2] = float(text2[j])
        point_list.append(row)
我不确定它是否能创建我想要的列表。你能检查一下并说明如何使它工作吗?

类似的东西

from scipy.spatial import distance

def calculate_distance_between_points(point1, point2):
   point1, point2 = point1.split(','), point2.split(',')
   point1, point2 = [float(i) for i in point1], [float(i) for i in point2]

   return distance.euclidean(point1, point2)

calculate_distance_between_points('1,1', '2,2')
如果先将坐标字符串值转换为
float
s,则可以使用该函数计算两点之间的欧氏距离

import math

def calculate_distance_between_points(point1, point2):
    p1 = (float(v) for v in point1.split(","))
    p2 = (float(v) for v in point2.split(","))
    return math.hypot(*(a-b for a, b in zip(p1, p2)))

d = calculate_distance_between_points('1,1', '2,2')
print(d)  # -> 1.4142135623730951

迭代每个列表和每个索引,取点1-点2的绝对值(或反之亦然)。分离字符串->数值转换和距离计算函数可能会更好,FYIThis似乎是。你问我们如何创建一个列表(Y),但是这个任务对于你真正的目标,计算两点之间的距离(X)似乎不是很有用。既然你提到了这个更大的目标(一件好事!),你应该期望得到的答案不会真正解决你关于列表列表的明确问题,因为在这个特定的上下文中想要这个答案似乎是一件愚蠢的事情。幸运的话,你也会得到解释,为什么列表没有真正的帮助。现在还不清楚你所说的“计算距离”是什么意思,你想在创建的列表中结束。请把你的问题解释清楚(和/或显示出想要的结果)。是的,但我想创建一个两个点的二维列表来思考一下。。。这可能是什么[第1点,第2点]?!?!?可能[[x1,y1],[x2,y2]]?只需使用
返回距离更改返回语句。欧几里德(point1,point2),[point1,point2]