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

Python双参数函数平均值求解:经纬度列表均值计算疑问

解决双列表平均值计算问题

首先,咱们先看看你现有代码里的几个小问题:

  • 函数里只处理了lat_list,完全没用到long_list,这肯定没法同时算出两个平均值呀
  • 返回的变量名写错了:你定义的是ave_lat,但return的是ave,运行会直接报错
  • Python3里print是函数,得加括号:print(...)
  • 尽量别用sum当变量名,它是Python的内置函数,用了会覆盖掉原功能

接下来,咱们调整代码,实现同时计算纬度和经度两个列表的平均值:

修正后的完整代码

def ave_list(lat_list, long_list):
    # 计算纬度平均值
    total_lat = 0.0
    for num in lat_list:
        total_lat += num
    ave_lat = total_lat / len(lat_list)
    
    # 计算经度平均值
    total_long = 0.0
    for num in long_list:
        total_long += num
    ave_long = total_long / len(long_list)
    
    # 返回两个平均值,用元组的形式
    return ave_lat, ave_long

def main():
    # 这里给一个对应的经度列表示例,你可以换成自己的实际数据
    latitudes = [47.7, 37.0, 32.9, 32.0, 40.0, 41.0, 41.4, 41.8, 0.2, 31.8, -6.3]
    longitudes = [122.3, 121.0, 117.2, 118.0, 105.0, 122.0, 113.4, 120.8, 90.2, 103.8, 10.3]
    
    # 接收返回的两个平均值
    avg_lat, avg_long = ave_list(latitudes, longitudes)
    print(f"纬度平均值: {avg_lat:.2f}")
    print(f"经度平均值: {avg_long:.2f}")

main()

补充优化说明

  • 函数返回了一个包含两个值的元组,我们可以用两个变量分别接收,这样就能单独使用每个平均值了
  • 如果觉得循环求和麻烦,其实可以直接用Python内置的sum()函数,代码会更简洁:
    def ave_list(lat_list, long_list):
        ave_lat = sum(lat_list) / len(lat_list)
        ave_long = sum(long_list) / len(long_list)
        return ave_lat, ave_long
    
  • 额外提一句:如果你的列表可能为空,记得加个判断,避免除以0的错误,比如:
    if not lat_list:
        raise ValueError("纬度列表不能为空")
    if not long_list:
        raise ValueError("经度列表不能为空")
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:33:02