那天偶尔看到看到一个小问题:两个不等长列表a=[1,2,3],b=[4,5,6,7],求它们对应元素的乘积的和。
我一开始想到的方法就是选择更小数组作为循环长度然后相乘求和:
a = [1,2,3]
b = [4,5,6,7]
sum = 0
for i in range(0,min(len(a),len(b))):
number += a[i]*b[i]
print(sum)
但是后来我想到了一种更为巧妙的方法,利用函数zip():
a = [1,2,3]
b = [4,5,6,7]
all = zip(a,b)
num = 0
for i,j in all:
num += i*j
print(num)
两种方法的结果完全相同
zip()函数的作用是将列表打包为元组列表,以上述两个列表为例:
a = [1,2,3]
b = [4,5,6,7]
all = zip(a,b)
这时的“all”实际上是这样的形式:
[(1, 4), (2, 5), (3, 6)]
很有意思的小实例,顺便学习了一个函数