本文实例讲述了python使用 zip 同时迭代多个序列。分享给大家供大家参考,具体如下:
zip 可以平行地遍历多个迭代器
python 3中zip相当于生成器,遍历过程中产生元祖,python2会把元祖生成好,一次性返回整份列表
zip(x,y,z)
会生成一个可返回元组 (x,y,z) 的迭代器
1
2
3
4
5
6
7
8
9
10
11
|
>>> x = [ 1 , 2 , 3 , 4 , 5 ]
>>> y = [ 'a' , 'b' , 'c' , 'd' , 'e' ]
>>> z = [ 'a1' , 'b2' , 'c3' , 'd4' , 'e5' ]
>>> for i in zip (x,y,z):
... print (i)
...
( 1 , 'a' , 'a1' )
( 2 , 'b' , 'b2' )
( 3 , 'c' , 'c3' )
( 4 , 'd' , 'd4' )
( 5 , 'e' , 'e5' )
|
遍历长度不一样(只要耗尽一个就会结束,若想遍历不等长请使用itertools的zip_longest)
1
2
3
4
5
6
7
8
9
10
|
>>> x = [ 1 , 2 , 3 , 4 , 5 , 6 ]
>>> y = [ 'a' , 'b' , 'c' , 'd' , 'e' ]
>>> for i in zip (x,y):
... print (i)
...
( 1 , 'a' )
( 2 , 'b' )
( 3 , 'c' )
( 4 , 'd' )
( 5 , 'e' )
|
1
2
3
4
5
6
7
8
9
10
11
12
|
>>> from itertools import zip_longest
>>> x = [ 1 , 2 , 3 , 4 , 5 , 6 ]
>>> y = [ 'a' , 'b' , 'c' , 'd' , 'e' ]
>>> for i in zip_longest(x,y):
... print (i)
...
( 1 , 'a' )
( 2 , 'b' )
( 3 , 'c' )
( 4 , 'd' )
( 5 , 'e' )
( 6 , None )
|
希望本文所述对大家Python程序设计有所帮助。
原文链接:https://blog.csdn.net/u011019726/article/details/78500717