在 python 多个列表对应位置元素求和中用到了zip()函数:
a = [1, 2, 3]
b = [4, 5, 6]
result = [i + j for i, j in zip(a, b)]
print(result) # [5, 7, 9]
那么zip() 函数怎么用呢?
在 python2中,zip()函数直接返回一个包含元组的列表。
而在 python3中,zip()函数返回的是一个对象。需要用 list()或tuple()把这个对象转成列表或元组。
比如在 python3.7中:
a = [1, 2, 3]
b = [4, 5, 6]
print(zip(a, b)) # <zip object at 0x0000017C4AD0FC48>
可以看到 zip() 的返回值确实是一个对象。
想要打印出zip()返回值的内容,可以将其转换为list再打印:
a = [1, 2, 3]
b = [4, 5, 6]
print(list(zip(a, b))) # [(1, 4), (2, 5), (3, 6)]
更多的元素:
a = [1, 2, 3]
b = [4, 5, 6]
c = [7, 8, 9]
print(list(zip(a, b, c))) # [(1, 4, 7), (2, 5, 8), (3, 6, 9)]