python中使用zip函数出现<zip object at 0x02A9E418>错误的原因
作者:sinat_15355869 发布时间:2021-02-24 02:37:14
python中zip函数返回一个以元组为元素的列表,其中第 i 个元组包含每个参数序列的第 i 个元素。返回的列表长度被截断为最短的参数序列的长度。只有一个序列参数时,它返回一个1元组的列表。没有参数时,它返回一个空的列表。概括起来一句话: zip函数返回的是一个列表,但是列表里面的元素是由一个个元组构成的..
在Python中使用zip函数,出现<zip object at 0x02A9E418>错误的原因是,你是用的是python2点多的版本,python3.0对python做了改动
zip方法在Python 2 和Python 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>错误的原因网站的支持!
来源:https://blog.csdn.net/sinat_15355869/article/details/82883538


猜你喜欢
- 数组/对象数组删除其中某一项由于日常工作中经常需要对数组进行操作,最经常使用到的就是对数组进行的删除操作对于我们前端来说,数组有两种区别1、
- 1.cut()可以实现类似于对成绩进行优良统计的功能,来看代码示例。假如我们有一组学生成绩,我们需要将这些成绩分为不及格(0-59)、及格(
- 1.比喻 如同Windows用桌面、文件夹、垃圾筒来比喻计算机的*作,Web的设计也是如此。善于利用明确、抽象或概念化的比喻ICON来表达各
- sqrt()方法返回x的平方根(x>0)。语法以下是sqrt()方法的语法:import mathmath.sqrt( x
- 本文实例讲述了python根据出生日期返回年龄的方法。分享给大家供大家参考。具体实现方法如下:def CalculateAge(self,
- 在已经发表的系列文章中我们已经讨论了两个ASP对象:Application对象和Session对象,因此能够访问Application对象和
- 我就废话不多说了,大家还是直接看代码吧~// 1 声明类型,没有初始化,零值(false)var a boola = truefmt.Pri
- PHP 中的 Interface 是一种非常重要的特性,它允许开发人员定义一组规范或者约束,以确保类之间的互操作性和兼容性。在本文中,我们将
- 前言我们前面对matplotlib模块底层结构学习,对其pyplot类(脚本层)类提供的绘制折线图、柱状图、饼图、直方图等统计图表的相关方法
- 最基本的抓取网页内容的代码实现:#!/usr/bin/env python from urllib import urlretrieve d
- 最近做的一个B/S项目,在打印时采用了在IE中嵌入.net winform控件和XML结合的方式(参见http://www.yesky.co
- 目录:1、脚本式开发.2、工程化开发3、工程化和脚本的区别4、来个table试试水4,1、目标4.2、思路4.3、设计与编码4.4、效果5、
- 好久没有写ASP代码了,今天在做一个简单的留言本时,出现了一下错误:Microsoft Office Access Database Eng
- 本文实例讲述了python每次处理一个字符的三种方法。分享给大家供大家参考。具体方法如下:a_string = "abccdea&
- 浏览器的开发者在很早的时候就已经意识到, HTTP's 的无状态会对Web开发者带来很大的问题,于是(cookies)应运而生。 c
- MySQL Daemon failed to start错误解决办法前两天我们发现发布好的网站不可以进行注册,登陆这些活动,但是访问页面是正
- MySQL是一个非常流行的小型关系型数据库管理系统,2008年1月16号被Sun公司收购。目前MySQL被广泛地应用在Internet上的中
- 目录配置连接池SetMaxOpenConns方法SetMaxIdleConns方法SetConnMaxLifetime方法SetConnMa
- 安装http://docs.sqlalchemy.org1、安装#进入虚拟环境#执行./python3 -m pip installimpo
- <%'使用说明'Dim a'Set a=new CreateExce