Python中如何实现第一个列表各元素与第二个列表全量元素相乘后求和
两个列表按指定规则运算的实现方案
你需要的运算逻辑可以简化为:先计算第二个列表的总和,再用第一个列表的每个元素乘以该总和,即可得到对应位置的结果,和你描述的逐元素相乘再求和的输出完全一致。
Python实现
方法1:简化高效版(推荐)
list_a = [1, 2] list_b = [1, 2, 3] sum_b = sum(list_b) result = [num * sum_b for num in list_a]
输出结果:[6, 12]
方法2:字面逻辑实现(完全匹配你描述的运算步骤)
如果需要严格按照「第一个列表元素逐个和第二个列表所有元素相乘再求和」的步骤实现,可使用如下代码:
list_a = [1, 2] list_b = [1, 2, 3] result = [sum(num1 * num2 for num2 in list_b) for num1 in list_a]
或者显式循环写法:
list_a = [1, 2] list_b = [1, 2, 3] result = [] for num1 in list_a: temp_sum = 0 for num2 in list_b: temp_sum += num1 * num2 result.append(temp_sum)
其他说明
- 简化版时间复杂度为O(n+m)(n为第一个列表长度,m为第二个列表长度),比两层遍历的O(n*m)效率更高,适合处理长列表场景。
- 两种实现的输出结果完全一致,可根据实际需求选择。
内容的提问来源于stack exchange,提问作者Peter Nagy
相关产品推荐
相关产品推荐

