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实现系统状态监测和故障转移实例方法
Nov 18 Python
浅谈Python 集合(set)类型的操作——并交差
Jun 30 Python
python看某个模块的版本方法
Oct 16 Python
python 从文件夹抽取图片另存的方法
Dec 04 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
Jan 15 Python
Python Web版语音合成实例详解
Jul 16 Python
Django使用模板后无法找到静态资源文件问题解决
Jul 19 Python
python颜色随机生成器的实例代码
Jan 10 Python
Python运行DLL文件的方法
Jan 17 Python
python实现四人制扑克牌游戏
Apr 22 Python
深入浅析python 中的self和cls的区别
Jun 20 Python
python“静态”变量、实例变量与本地变量的声明示例
Nov 13 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
PHP中使用php5-ffmpeg撷取视频图片实例
2015/01/07 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
2020/03/26 PHP
jquery 表单取值常用代码
2009/12/22 Javascript
javascript 清空form表单中某种元素的值
2009/12/26 Javascript
利用JQuery的load函数动态加载其它页面的内容的实现代码
2010/12/14 Javascript
javascript结合CSS实现苹果开关按钮特效
2015/04/07 Javascript
node.js 使用ejs模板引擎时后缀换成.html
2015/04/22 Javascript
JavaScript核心语法总结(推荐)
2016/06/02 Javascript
AngularJS基础 ng-src 指令简单示例
2016/08/03 Javascript
微信小程序 教程之事件
2016/10/18 Javascript
ajax接收后台数据在html页面显示
2017/02/19 Javascript
jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】
2017/03/14 Javascript
JavaScript实现省市县三级级联特效
2017/05/16 Javascript
Node.js 实现简单的接口服务器的实例代码
2017/05/23 Javascript
JS实现调用本地摄像头功能示例
2018/05/18 Javascript
分享5个小技巧让你写出更好的 JavaScript 条件语句
2018/10/20 Javascript
vue项目中企业微信使用js-sdk时config和agentConfig配置方式详解
2020/12/15 Vue.js
js实现随机点名
2021/01/19 Javascript
详解使用Python处理文件目录的相关方法
2015/10/16 Python
Python的多维空数组赋值方法
2018/04/13 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
2019/07/19 Python
解决Python3用PIL的ImageFont输出中文乱码的问题
2019/08/22 Python
Python中*args和**kwargs的区别详解
2019/09/17 Python
python 视频逐帧保存为图片的完整实例
2019/12/10 Python
Python实现清理微信僵尸粉功能示例【基于itchat模块】
2020/05/29 Python
OpenCV 之按位运算举例解析
2020/06/19 Python
HTML5之HTML元素扩展(上)—新增加的元素及使用概述
2013/01/31 HTML / CSS
HTMl5的存储方式sessionStorage和localStorage详解
2014/03/18 HTML / CSS
世界上最具创新性的增强型知名运动品牌:Proviz
2018/04/03 全球购物
Antler英国官网:购买安特丽行李箱、拉杆箱
2019/08/25 全球购物
集体婚礼证婚词
2014/01/13 职场文书
奥巴马就职演讲稿
2014/05/15 职场文书
劳动保障个人工作总结
2015/03/04 职场文书
2015年团支部工作总结
2015/04/03 职场文书
修改MySQL的默认密码的四种小方法
2021/05/26 MySQL
详解gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
2021/11/27 Vue.js