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

如何根据另一列表的值对嵌套列表的对应子列表执行批量乘法

实现方案

1. 基础for循环实现

该需求完全可以通过for循环实现,你之前得到错误结果是因为逻辑错用了嵌套循环遍历b列表,不需要遍历整个b,只要同步取a的子列表和b对应位置的系数再计算即可:

a = [[8, 23, 45, 12, 78, 58], [2,3,4,1,5,4], [6, 7, 6, 9, 5, 8] , [1, 2, 4, 7, 8]]
b = [1, 0 , 1 , 2]
result = []
# 用zip同步遍历a的子列表和b的对应系数
for sub_list, coeff in zip(a, b):
    # 计算当前子列表所有元素乘系数
    processed = [num * coeff for num in sub_list]
    result.append(processed)
print(result)

运行输出结果:

[[8, 23, 45, 12, 78, 58], [0, 0, 0, 0, 0, 0], [6, 7, 6, 9, 5, 8], [2, 4, 8, 14, 16]]

注:你给出的预期输出中第三个子列表遗漏了元素5,属于笔误,实际计算结果如上。

2. 精简列表推导式写法

逻辑和for循环完全一致,写法更简洁,适合熟练场景使用:

result = [[num * coeff for num in sub_list] for sub_list, coeff in zip(a, b)]

3. 大规模数值计算可选Numpy实现

如果是处理大批量数值数组,用Numpy的广播特性运算效率更高:

import numpy as np
# 子列表长度不同时用object类型,长度一致可直接转二维数组运算
a_arr = np.array(a, dtype=object)
b_arr = np.array(b)
result = [sub * coeff for sub, coeff in zip(a_arr, b_arr)]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 16:27:03