一、zip函数的功能如下:
创新互联专业为企业提供安庆网站建设、安庆做网站、安庆网站设计、安庆网站制作等企业网站建设、网页设计与制作、安庆企业网站模板建站服务,十载安庆做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。当各个迭代器中元素的个数不一致时,则返回列表中长度最短的情况,利用 *号操作符,可以将元组解压为列表。
二、Python.3.x中使用zip函数生成列表的方法如下:
1、作出说明,使用zip函数将可迭代的对象作为参数。
2、将对象中对应的元素打包成一个个元组。
3、用zip函数平行地遍历多个迭代器,如果可迭代对象的长度不相同将按短的序列为准。
4、遍历过程中产生元组,Python.3.x会把元组生成好,然后生成列表。
当然是有的!下面具体分析不同:\x0d\x0a\x0d\x0azip方法在Python 2 和Python 3中的不同\x0d\x0a\x0d\x0a为何有这种不同\x0d\x0a更多注解\x0d\x0a\x0d\x0a问题一:zip方法在Python 2 和Python 3中的不同\x0d\x0aPython 2 的代码演示:\x0d\x0a$ python2\x0d\x0a a = zip((1, 2), (3, 4))\x0d\x0a a\x0d\x0a[(1, 2), (3, 4)]\x0d\x0a# 可以看到这里返回的是一个list\x0d\x0a\x0d\x0aPython 3 的代码演示:\x0d\x0a$ python3\x0d\x0a a = zip((1, 2), (3, 4))\x0d\x0a a\x0d\x0a\x0d\x0a# 可以看到这里返回的是一个对象,这里就是2和3的不同点\x0d\x0a dir(a) # 查看a的相关属性\x0d\x0a['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__lt__', '__ne__', '__new__', '__next__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']\x0d\x0a# 这里值得注意的是 '__iter__' 和 '__next__' 方法,说明a是一个支持遍历的对象\x0d\x0a# 既然知道了a是一个支持遍历的对象,我们也就基本明白了a的用法了\x0d\x0a### 和Python2的区别(一):返回的是一个支持遍历的对象,而不是一个list本身\x0d\x0a for i in a: print i # in 方法\x0d\x0a...\x0d\x0a(1, 3)\x0d\x0a(2, 4)\x0d\x0a next(a) # 我们测试__next__方法\x0d\x0aTraceback (most recent call last):\x0d\x0a File "", line 1, in \x0d\x0aStopIteration # 说明next方法是支持的,但是这里也说明了对象只能遍历一次\x0d\x0a a = zip((1, 2), (3, 4)) # 这里需要重新赋值,因为这个对象只能遍历一次\x0d\x0a next(a)\x0d\x0a(1, 3) # 运行良好\x0d\x0a### 返回的对象支持遍历的操作\x0d\x0a\x0d\x0a问题二:为何有这种不同\x0d\x0a我想最重要的原因是节约了不少的内存吧。Python的运行效率和编译类型的语言自然是没法比,但是能优化就优化一点吧~谁不想有更高的追求呢。\x0d\x0a问题三:更多注解\x0d\x0a这个zip在不同版本的不同反应了python的一个演变:大部分返回list的函数不在返回list,而是返回一个支持遍历的对象,比如map、fiter之类的,基本的例子如下:\x0d\x0a$ python3\x0d\x0a a = map(abs, [1, 2, -3])\x0d\x0a a\x0d\x0a\x0d\x0a list(a) # 如果不习惯,可以自己手动转化为list,也是写兼容代码需要注意的地方\x0d\x0a[1, 2, 3]\x0d\x0a\x0d\x0a$ python2\x0d\x0a a = map(abs, [1, 2, -3])\x0d\x0a a\x0d\x0a[1, 2, 3]
zip()函数用于将可迭代的对象作为参考,将对象中对应的元素打包成一个个远足,然后返回有这些元祖组成的列表。
zip([iterabale,....])