zip方法在Python 2 和Python 3中的不同
Python 2 的代码演示:
$ python2
>>> a = zip((1, 2), (3, 4))
>>> a
[(1, 3), (2, 4)]
# 可以看到这里返回的是一个list
Python 3 的代码演示:
$ python3
>>> a = zip((1, 2), (3, 4))
>>> a
<zip object at 0x1007096c8>
# 可以看到这里返回的是一个对象,这里就是2和3的不同点
>>> dir(a) # 查看a的相关属性
['__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__'] # 这里值得注意的是'__next__'方法,说明a是一个迭代器
# 既然知道了a是一个迭代器,我们也就基本明白了a的用法了 ### 和Python2的区别(一):返回的是一个迭代器,而不是一个list本身
>>> for i in a: print(i) # in 方法 ...
(1, 3) (2, 4)
>>> next(a) # 我们测试__next__方法
Traceback (most recent call last): File "<stdin>", line 1, in <module> StopIteration # 说明next方法是支持的
>>> a = zip((1, 2), (3, 4)) # 这里需要重新赋值,迭代器只能遍历一次
>>> next(a)
(1, 3) # 运行良好
下一篇: Note_ zip()函数
推荐阅读
-
在Python的Django框架中调用方法和处理无效变量
-
在Python中定义和使用抽象类的方法
-
Anaconda2下实现Python2.7和Python3.5的共存方法
-
python2和python3在处理字符串上的区别详解
-
在win10和linux上分别安装Python虚拟环境的方法步骤
-
Python 2/3下处理cjk编码的zip文件的方法
-
在python3中pyqt5和mayavi不兼容问题的解决方法
-
在树莓派2或树莓派B+上安装Python和OpenCV的教程
-
在Python的Django框架中调用方法和处理无效变量
-
Python2.x和3.x下maketrans与translate函数使用上的不同