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过滤函数filter()使用自定义函数过滤序列实例
Aug 26 Python
Python学习笔记之os模块使用总结
Nov 03 Python
wxPython使用系统剪切板的方法
Jun 16 Python
python 读写、创建 文件的方法(必看)
Sep 12 Python
Django项目实战之用户头像上传与访问的示例
Apr 21 Python
详解Python发送email的三种方式
Oct 18 Python
opencv 获取rtsp流媒体视频的实现方法
Aug 23 Python
用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码
Jul 13 Python
详解Pytorch显存动态分配规律探索
Nov 17 Python
关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题
Nov 28 Python
Python实现一个论文下载器的过程
Jan 18 Python
Python Pandas数据分析之iloc和loc的用法详解
Nov 11 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
谈一谈收音机的高放电路
2021/03/02 无线电
PHP网页游戏学习之Xnova(ogame)源码解读(五)
2014/06/23 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
2015/02/12 PHP
ThinkPHP函数详解之M方法和R方法
2015/09/10 PHP
thinkphp分页集成实例
2017/07/24 PHP
音乐播放用的的几个函数
2006/09/07 Javascript
JavaScript的9个陷阱及评点分析
2008/05/16 Javascript
用js生产批量批处理执行命令
2008/07/28 Javascript
js操作ajax返回的json的注意问题!
2010/02/23 Javascript
suggestion开发小结以及对键盘事件的总结(针对中文输入法状态)
2011/12/20 Javascript
JavaScript 反科里化 this [译]
2012/09/20 Javascript
jQuery学习笔记之jQuery.extend(),jQuery.fn.extend()分析
2014/06/09 Javascript
cocos2dx骨骼动画Armature源码剖析(三)
2015/09/08 Javascript
jQuery新窗口打开外链接
2016/07/21 Javascript
textarea 在浏览器中固定大小和禁止拖动的实现方法
2016/12/03 Javascript
基于Bootstrap的网页设计实例
2017/03/01 Javascript
微信小程序 向左滑动删除功能的实现
2017/03/10 Javascript
详解打造 Vue.js 可复用组件
2017/03/24 Javascript
微信小程序开发中的疑问解答汇总
2017/07/03 Javascript
zTree树形菜单交互选项卡效果的实现方法
2017/12/25 Javascript
使用json-server简单完成CRUD模拟后台数据的方法
2018/07/12 Javascript
关于vue属性使用和不使用冒号的区别说明
2020/10/22 Javascript
element-ui中el-upload多文件一次性上传的实现
2020/12/02 Javascript
vue 实现图片懒加载功能
2020/12/31 Vue.js
[45:16]完美世界DOTA2联赛循环赛 IO vs FTD BO2第二场 11.05
2020/11/06 DOTA
python分析网页上所有超链接的方法
2015/05/08 Python
python使用xlrd实现检索excel中某列含有指定字符串记录的方法
2015/05/09 Python
python对html过滤处理的方法
2018/10/21 Python
python实现WebSocket服务端过程解析
2019/10/18 Python
HTML中使用SVG与SVG预定义形状元素介绍
2013/06/28 HTML / CSS
Clarks鞋美国官网:全球领军鞋履品牌
2017/05/13 全球购物
初中信息技术教学计划
2015/01/22 职场文书
病人慰问信范文
2015/02/15 职场文书
因家庭原因离职的辞职信范文
2015/05/12 职场文书
金榜题名主持词
2015/07/02 职场文书
mybatis 获取无数据的字段不显示的问题
2021/07/15 Java/Android