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

Python嵌套列表内子列表间逐元素相乘的实现方法

Python嵌套列表子列表逐元素两两相乘实现方法

实现代码(新手友好无额外依赖)

a = [[2, 3, 1, 6], [1, 6, 1, 9], [1, 1, 1, 2]]
result = []
# 遍历每一个子列表作为基准
for base_idx, base_list in enumerate(a):
    current_result_group = []
    # 遍历所有其余子列表做相乘
    for other_idx, other_list in enumerate(a):
        # 跳过和自身配对的情况
        if base_idx == other_idx:
            continue
        # 逐元素配对相乘
        multiply_list = [x * y for x, y in zip(base_list, other_list)]
        current_result_group.append(multiply_list)
    result.append(current_result_group)

# 打印验证结果
print(result)

运行上述代码即可得到你需要的输出:
[[[2, 18, 1, 54], [2, 3, 1, 12]], [[2, 18, 1, 54], [1, 6, 1, 18]], [[2, 3, 1, 12], [1, 6, 1, 18]]]

简洁版写法(列表推导式)

如果偏好更精简的代码,可以直接用嵌套列表推导式实现相同逻辑:

a = [[2, 3, 1, 6], [1, 6, 1, 9], [1, 1, 1, 2]]
result = [[[x*y for x,y in zip(base, other)] for idx, other in enumerate(a) if idx != base_idx] for base_idx, base in enumerate(a)]

注意事项

  • 代码默认所有子列表长度一致,若存在子列表长度不同的情况,zip会自动以最短子列表的长度为准做配对计算,有严格长度要求可提前添加长度校验逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 17:39:04