python zip() 函数用法

263 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

在 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)]