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

如何编写Python函数middle_point计算坐标列表的中点元组

中点计算函数middle_point实现方案

以下是完全匹配需求的可运行代码:

def middle_point(coordinates):
    point_num = len(coordinates)
    # 空输入直接返回空元组
    if not point_num:
        return ()
    res = []
    # 按维度拆分所有坐标值
    for dim_vals in zip(*coordinates):
        avg = sum(dim_vals) / point_num
        # 整数返回int类型,非整数保留1位小数匹配示例要求
        if avg.is_integer():
            res.append(int(avg))
        else:
            res.append(round(avg, 1))
    return tuple(res)

效果验证

  • 测试用例1:
    输入coordinates = [(2,4),(2,0)]
    运行print(middle_point(coordinates)),输出结果为(2, 2),完全匹配示例要求。
  • 测试用例2:
    输入coordinates = [(2, 8, 7, 5), (6, 10, 1, 3), (1, 1, 4, 6)]
    运行print(middle_point(coordinates)),输出结果为(3, 6.3, 4, 4.7),完全匹配示例要求。

逻辑说明

  • zip(*coordinates)会将传入的所有坐标元组按维度拆分,同维度的所有数值会被打包为一组,例如3个四维坐标传入后会拆分出4组,每组对应同一个维度的所有坐标值
  • 每组数值求和后除以坐标点总数得到该维度的平均值,额外增加了整数判断逻辑,符合示例中整数返回整数、小数保留1位的输出要求
  • 如果你不需要固定保留1位小数,直接调整round(avg, 1)里的保留位数即可,不需要小数位限制直接删除round方法即可
  • 代码默认所有输入坐标的维度一致,若需要兼容维度不一致的输入,可在函数开头增加长度校验逻辑抛出异常即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 15:45:02