zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回一个zip对象,可以有这个对象生产这些元组组成的列表(可以使用list)。
下面用一个例子来解释:
a=zip([1,2,3],['a','b','c']) print(a) #<zip object at 0x02D1D4E0> print(list(a)) #[(1, 'a'), (2, 'b'), (3, 'c')]
上面其实可以看出一个打包的过程,对应的就有解包的方法,用'*'操作符可以实现解包:
a=zip([1,2,3],['a','b','c']) print(list(zip(*a))) # [(1, 2, 3), ('a', 'b', 'c')]
注意,zip返回的本质是一个生成器,如果利用list,或其他方法迭代后,生成器就是空的了。我们用上面的例子来说明这问题。
a=zip([1,2,3],['a','b','c']) print(list(a)) #[(1, 'a'), (2, 'b'), (3, 'c')] print(list(a)) #[] 因为上面已经把生成器使用了
另外当传入的两个参数的长度不同是,按短的进行处理:
a=zip([1,2,3,4],['a','b','c']) print(list(a)) #[(1, 'a'), (2, 'b'), (3, 'c')]