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

Python中基于两组嵌套列表计算对应子列表加权平均的实现

问题排查

你的代码无法得到预期结果,核心是三个遗漏点:

  • 未做空值兼容:前3组子列表为空时,np.average接收到空输入和空权重会直接抛出权重和为0的错误,无法正常运行
  • 输出结构不对:你直接把计算得到的均值数值追加到结果列表,但要求的输出是和原嵌套结构对齐——空位置保留空列表,有值的位置存仅含计算结果的单元素子列表
  • 未做取整处理:加权平均直接返回浮点数,和预期的整数结果不匹配
正确实现代码
import numpy as np

A = [[],[],[],[500,540],[510,560,550],[460,510,600,450]]
B = [[],[],[],[4000,2500],[3500,3600,3000],[3000,2900,3300,3500]]

C = []
for a_sub, b_sub in zip(A, B):
    # 空列表直接保留原有空结构
    if not a_sub:
        C.append([])
        continue
    # 计算加权平均后四舍五入取整,包装为单元素列表追加
    weighted_avg = np.average(a_sub, weights=b_sub)
    C.append([round(weighted_avg)])

print(C)
# 运行输出:[[], [], [], [515], [540], [505]],完全匹配预期格式
实现说明
  • 用zip同步遍历A、B的对应子列表,比索引遍历的可读性更高
  • 空列表分支直接跳过计算追加空值,从根源避免运行报错
  • 计算完成后通过round做四舍五入取整,再包装为单元素列表,完全对齐要求的嵌套结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 15:30:05