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使用循环实现批量创建文件夹示例
Mar 25 Python
python字符串编码识别模块chardet简单应用
Jun 15 Python
python使用wmi模块获取windows下的系统信息 监控系统
Oct 27 Python
Python实现聊天机器人的示例代码
Jul 09 Python
利用anaconda作为python的依赖库管理方法
Aug 13 Python
基于python及pytorch中乘法的使用详解
Dec 27 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
Apr 22 Python
python实时监控logstash日志代码
Apr 27 Python
Selenium之模拟登录铁路12306的示例代码
Jul 31 Python
Pytorch - TORCH.NN.INIT 参数初始化的操作
Feb 27 Python
python实现求纯色彩图像的边框
Apr 08 Python
分享几种python 变量合并方法
Mar 20 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/01 无线电
一个odbc连mssql分页的类
2006/10/09 PHP
CodeIgniter集成smarty的方法详解
2016/05/26 PHP
详解php语言最牛掰的Laravel框架
2017/11/20 PHP
thinkphp5使html5实现动态跳转的例子
2019/10/16 PHP
使用基于jquery的gamequery插件做JS乒乓球游戏
2011/07/31 Javascript
jquery三个关闭弹出层的小示例
2013/11/05 Javascript
javascript获取当前的时间戳的方法汇总
2015/07/26 Javascript
百度地图API之本地搜索与范围搜索
2015/07/30 Javascript
JavaScript数组实现数据结构中的队列与堆栈
2016/05/26 Javascript
一个炫酷的Bootstrap导航菜单
2016/12/28 Javascript
微信小程序 swiper制作tab切换实现附源码
2017/01/21 Javascript
vue做网页开场视频的实例代码
2017/10/20 Javascript
深入理解node.js http模块
2018/01/24 Javascript
vue 实现数字滚动增加效果的实例代码
2018/07/06 Javascript
vue进入页面时滚动条始终在底部代码实例
2019/03/26 Javascript
浅谈VUE防抖与节流的最佳解决方案(函数式组件)
2019/05/22 Javascript
详解vue-router 动态路由下子页面多页共活的解决方案
2019/12/22 Javascript
React实现全选功能
2020/08/25 Javascript
vue中重定向redirect:‘/index‘,不显示问题、跳转出错的完美解决
2020/09/28 Javascript
详解Django之auth模块(用户认证)
2018/04/17 Python
Python面向对象类继承和组合实例分析
2018/05/28 Python
Django csrf 验证问题的实现
2018/10/09 Python
python 文本单词提取和词频统计的实例
2018/12/22 Python
python3.4爬虫demo
2019/01/22 Python
Python可视化mhd格式和raw格式的医学图像并保存的方法
2019/01/24 Python
python递归法实现简易连连看小游戏
2020/03/25 Python
Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统
2019/09/05 Python
pytorch 求网络模型参数实例
2019/12/30 Python
Python PIL库图片灰化处理
2020/04/07 Python
html5中JavaScript removeChild 删除所有节点
2014/05/16 HTML / CSS
EJB timer的种类
2014/10/28 面试题
竞聘演讲稿范文
2014/01/12 职场文书
付款委托书范本
2014/10/05 职场文书
教学反思怎么写
2016/02/24 职场文书
Golang 获取文件md5校验的方法以及效率对比
2021/05/08 Golang