zip()函数在运算时,会以一个或多个序列做为参数,返回一个元组的列表。同时将这些序列中并排的元素配对。
一、zip()基本操作方法
例如,有两个列表:
|
|
在python 3.0中,使用zip()函数来可以把列表合并,并创建一个可迭代对象,使用时必须将其包含在一个list中,方便一次性显示出所有结果
|
|
zip()参数可以接受任何类型的序列,同时也可以有两个以上的参数;当传入参数的长度不同时,zip能自动以最短序列长度为准进行截取,获得元组。
|
|
二、搭配for循环,支持并行迭代操作方法
zip()方法用在for循环中,就会支持并行迭代:
|
|
其实它的工作原理就是使用了zip()函数生成的可迭代对象,在for循环里解包zip结果中的元组,用元组赋值运算。就好像(x,y)=(2,6),赋值、序列解包操作。在对文件的操作中我们也会用到遍历,例如Python遍历文件夹目录与文件操作,就是很方便实用的。
三、zip()在Python 2 和Python 3中的不同
问题一:zip方法在Python 2 和Python 3中的不同
Python 2 的代码演示:
|
|
Python 3 的代码演示:
|
|
问题二:为什么会有不同
最主要的原因应该是节约内存,可迭代的对象只有在使用某个元素时才会生成这个元素
这个zip在不同版本的不同反应了python的一个演变:大部分返回list的函数不在返回list,而是返回一个支持遍历的对象,比如map、fiter之类的,基本的例子如下:
|
|
|
|