You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何基于已有两点距离函数计算点列表总距离

点列表相邻点累计总距离实现方案

核心实现逻辑非常直接,按以下步骤处理即可:

  • 入参边界判断:如果传入的点列表长度小于2,不存在可计算的相邻点对,直接返回0,避免索引访问报错
  • 初始化总距离累加值为0
  • 从列表第二个元素开始遍历,每次取当前元素和前一个元素组成相邻点对,调用已有的distance函数计算两点间距,累加到总距离中
  • 遍历完成后返回累计的总距离值

你已经实现的distance函数可以直接复用,完整可运行代码如下:

import math

# 已完成的两点间距计算函数
def distance(point1, point2):
    dist = math.sqrt((point2[0] - point1[0])** 2 + (point2[1] - point1[1])** 2) 
    return dist

# 新增的路径总距离计算函数
def total_distance(points):
    # 点数量不足2时无有效路径,返回0
    if len(points) < 2:
        return 0.0
    total = 0.0
    # 逐对计算相邻点距离累加
    for i in range(1, len(points)):
        total += distance(points[i-1], points[i])
    return total

调用测试示例:

# 测试路径:依次经过(0,0)、(3,4)、(0,8)三个点
path = [(0,0), (3,4), (0,8)]
print(total_distance(path)) 
# 输出结果为10.0,其中(0,0)到(3,4)距离为5,(3,4)到(0,8)距离为5,累计总距离10

如果偏好更简洁的写法,也可以借助zip函数直接配对相邻点,配合生成器表达式求和,代码更凝练:

def total_distance(points):
    return sum(distance(p1, p2) for p1, p2 in zip(points, points[1:])) if len(points) >= 2 else 0.0

内容的提问来源于stack exchange,提问作者Moxie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.11 16:16:23