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 。
不要从循环内部返回,因为它只会在 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)