python zip()函数用法详解

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

猜你喜欢

转载自www.cnblogs.com/linshuhui/p/8982411.html
今日推荐