将新列表打印为两个列表中元素的乘积

phi*_*ath 1 python function list

所以我试图定义一个函数,给定两个相同大小的列表,返回一个新列表,其中包含给定索引处每个元素的乘积。

a = [1, 2, 3]
b = [1, 4, 5]

def list_mult(a, b):
    if len(a) != len(b):
        print("error, lists must be the same size")

    for i in range(len(a)):
        return [a[i] * b[i]]

print(list_mult(a, b))
Run Code Online (Sandbox Code Playgroud)

代码正在运行,但仅返回 [1]。不知道为什么,因为我的印象是这个 for 循环会迭代范围内的所有 i 。

hev*_*ev1 6

不要从循环内部返回,因为它只会在 1 次迭代后返回。保持当前的结构,您可以将每个产品添加到列表中并将其返回。

res = []
for i in range(len(a)):
    res.append(a[i] * b[i])
return res
Run Code Online (Sandbox Code Playgroud)

或者,使用列表理解zip.

return [x * y for x, y in zip(a, b)]
Run Code Online (Sandbox Code Playgroud)