本文实例讲述了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