python中使用zip函数出现错误的原因


Posted in Python onSeptember 28, 2018

python中zip函数返回一个以元组为元素的列表,其中第 i 个元组包含每个参数序列的第 i 个元素。返回的列表长度被截断为最短的参数序列的长度。只有一个序列参数时,它返回一个1元组的列表。没有参数时,它返回一个空的列表。概括起来一句话: zip函数返回的是一个列表,但是列表里面的元素是由一个个元组构成的..

在Python中使用zip函数,出现<zip object at 0x02A9E418>错误的原因是,你是用的是python2点多的版本,python3.0对python做了改动

  1. zip方法在Python 2 和Python 3中的不同
  2.  为何有这种不同
  3.  更多注解

问题一:zip方法在Python 2 和Python 3中的不同

Python 2 的代码演示:

$ python2
>>> a = zip((1, 2), (3, 4))
>>> a
[(1, 2), (3, 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__' ] # 这里值得注意的是 ‘__iter__' 和 ‘__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) # 运行良好 ### 返回的对象支持遍历的操作

问题二:为何有这种不同

我想最重要的原因是节约了不少的内存吧。Python的运行效率和编译类型的语言自然是没法比,但是能优化就优化一点吧~谁不想有更高的追求呢。

问题三:更多注解

这个zip在不同版本的不同反应了python的一个演变:大部分返回list的函数不在返回list,而是返回一个支持遍历的对象,比如map、fiter之类的,基本的例子如下:

$ python3
>>> a = map(abs, [1, 2, -3])
>>> a
<map object at 0x100707ed0>
>>> list(a) # 如果不习惯,可以自己手动转化为list,也是写兼容代码需要注意的地方
[1, 2, 3]

$ python2
>>> a = map(abs, [1, 2, -3])
>>> a
[1, 2, 3]

所以运行方法是

>>> t=[‘name','age','gender']
>>> t2=[‘milo',30,'male']
>>> for each in zip(t,t2):
 print(each)

运行结果:

(‘name', ‘milo')
(‘age', 30)
(‘gender', ‘male')
for each in zip(t,t2):
 print(each)

总结

以上所述是小编给大家介绍的python中使用zip函数出现<zip object at 0x02A9E418>错误的原因,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
总结python实现父类调用两种方法的不同
Jan 15 Python
Python实现基本数据结构中栈的操作示例
Dec 04 Python
解决Atom安装Hydrogen无法运行python3的问题
Aug 28 Python
Python3操作Excel文件(读写)的简单实例
Sep 02 Python
python调用函数、类和文件操作简单实例总结
Nov 29 Python
Keras:Unet网络实现多类语义分割方式
Jun 11 Python
python编写softmax函数、交叉熵函数实例
Jun 11 Python
python的help函数如何使用
Jun 11 Python
Python性能测试工具Locust安装及使用
Dec 01 Python
Python读取ini配置文件传参的简单示例
Jan 05 Python
Python连续赋值需要注意的一些问题
Jun 03 Python
聊聊Python String型列表求最值的问题
Jan 18 Python
python中的for循环
Sep 28 #Python
Django migrations 默认目录修改的方法教程
Sep 28 #Python
python数据结构之线性表的顺序存储结构
Sep 28 #Python
python实现顺序表的简单代码
Sep 28 #Python
linux安装Python3.4.2的操作方法
Sep 28 #Python
python求质数的3种方法
Sep 28 #Python
python数据结构学习之实现线性表的顺序
Sep 28 #Python
You might like
将OICQ数据转成MYSQL数据
2006/10/09 PHP
PHP中使用unset销毁变量并内存释放问题
2012/07/05 PHP
探讨PHP JSON中文乱码的解决方法详解
2013/06/06 PHP
ImageFlow可鼠标控制图片滚动
2008/01/30 Javascript
php图像生成函数之间的区别分析
2012/12/06 Javascript
Jquery利用mouseenter和mouseleave实现鼠标经过弹出层且可以点击
2014/02/12 Javascript
js过滤特殊字符输入适合输入、粘贴、拖拽多种情况
2014/03/22 Javascript
javascript打开word文档的方法
2014/04/16 Javascript
JavaScript中判断整字类型最简洁的实现方法
2014/11/08 Javascript
js使用post 方式打开新窗口
2015/02/26 Javascript
jQuery插件scroll实现无缝滚动效果
2015/04/27 Javascript
JavaScript通过Date-Mask将日期转换成字符串的方法
2015/06/04 Javascript
jquery实现可点击伸缩与展开的菜单效果代码
2015/08/31 Javascript
AngularJS入门(用ng-repeat指令实现循环输出
2016/05/05 Javascript
JavaScript基础语法之js表达式
2016/06/07 Javascript
JS for循环中i++ 和 ++i的区别介绍
2016/07/20 Javascript
JavaScript“尽快失败”的原则实例详解
2016/10/08 Javascript
jQuery中的select操作详解
2016/11/29 Javascript
gulp加批处理(.bat)实现ng多应用一键自动化构建
2017/02/16 Javascript
JS中利用localStorage防止页面动态添加数据刷新后数据丢失
2017/03/10 Javascript
利用vscode编写vue的简单配置详解
2017/06/17 Javascript
JS实现点击按钮随机生成可拖动的不同颜色块示例
2019/01/30 Javascript
Vue(定时器)解决mounted不能获取到data中的数据问题
2020/07/30 Javascript
python 判断字符串中是否含有汉字或非汉字的实例
2019/07/15 Python
python基于opencv检测程序运行效率
2019/12/28 Python
利用scikitlearn画ROC曲线实例
2020/07/02 Python
Python django框架 web端视频加密的实例详解
2020/11/20 Python
关于box-sizing的全面理解
2016/07/28 HTML / CSS
整理HTML5的一些新特性与Canvas的常用属性
2016/01/29 HTML / CSS
钉钉企业内部H5微应用开发详解
2020/05/12 HTML / CSS
物业管理毕业生个人的求职信
2013/11/30 职场文书
《和田的维吾尔》教学反思
2014/04/14 职场文书
教师节感谢信
2015/01/22 职场文书
Oracle 死锁的检测查询及处理
2021/09/25 Oracle
JS 基本概念详细介绍
2021/10/16 Javascript
Python Pygame实战在打砖块游戏的实现
2022/03/17 Python