python中使用zip函數(shù)出現(xiàn)<zip object at 0x02A9E418>錯(cuò)誤的原因
python中zip函數(shù)返回一個(gè)以元組為元素的列表,其中第 i 個(gè)元組包含每個(gè)參數(shù)序列的第 i 個(gè)元素。返回的列表長(zhǎng)度被截?cái)酁樽疃痰膮?shù)序列的長(zhǎng)度。只有一個(gè)序列參數(shù)時(shí),它返回一個(gè)1元組的列表。沒(méi)有參數(shù)時(shí),它返回一個(gè)空的列表。概括起來(lái)一句話: zip函數(shù)返回的是一個(gè)列表,但是列表里面的元素是由一個(gè)個(gè)元組構(gòu)成的..
在Python中使用zip函數(shù),出現(xiàn)<zip object at 0x02A9E418>錯(cuò)誤的原因是,你是用的是python2點(diǎn)多的版本,python3.0對(duì)python做了改動(dòng)
- zip方法在Python 2 和Python 3中的不同
- 為何有這種不同
- 更多注解
問(wèn)題一:zip方法在Python 2 和Python 3中的不同
Python 2 的代碼演示:
$ python2 >>> a = zip((1, 2), (3, 4)) >>> a [(1, 2), (3, 4)]
# 可以看到這里返回的是一個(gè)list
Python 3 的代碼演示:
$ python3 >>> a = zip((1, 2), (3, 4)) >>> a <zip object at 0x1007096c8>
# 可以看到這里返回的是一個(gè)對(duì)象,這里就是2和3的不同點(diǎn) >>> dir(a) # 查看a的相關(guān)屬性 [‘__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__' 方法,說(shuō)明a是一個(gè)支持遍歷的對(duì)象 # 既然知道了a是一個(gè)支持遍歷的對(duì)象,我們也就基本明白了a的用法了 ### 和Python2的區(qū)別(一):返回的是一個(gè)支持遍歷的對(duì)象,而不是一個(gè)list本身 >>> for i in a: print i # in 方法 … (1, 3) (2, 4) >>> next(a) # 我們測(cè)試__next__方法 Traceback (most recent call last): File “<stdin>”, line 1, in <module> StopIteration # 說(shuō)明next方法是支持的,但是這里也說(shuō)明了對(duì)象只能遍歷一次 >>> a = zip((1, 2), (3, 4)) # 這里需要重新賦值,因?yàn)檫@個(gè)對(duì)象只能遍歷一次 >>> next(a) (1, 3) # 運(yùn)行良好 ### 返回的對(duì)象支持遍歷的操作
問(wèn)題二:為何有這種不同
我想最重要的原因是節(jié)約了不少的內(nèi)存吧。Python的運(yùn)行效率和編譯類(lèi)型的語(yǔ)言自然是沒(méi)法比,但是能優(yōu)化就優(yōu)化一點(diǎn)吧~誰(shuí)不想有更高的追求呢。
問(wèn)題三:更多注解
這個(gè)zip在不同版本的不同反應(yīng)了python的一個(gè)演變:大部分返回list的函數(shù)不在返回list,而是返回一個(gè)支持遍歷的對(duì)象,比如map、fiter之類(lèi)的,基本的例子如下:
$ python3 >>> a = map(abs, [1, 2, -3]) >>> a <map object at 0x100707ed0> >>> list(a) # 如果不習(xí)慣,可以自己手動(dòng)轉(zhuǎn)化為list,也是寫(xiě)兼容代碼需要注意的地方 [1, 2, 3] $ python2 >>> a = map(abs, [1, 2, -3]) >>> a [1, 2, 3]
所以運(yùn)行方法是
>>> t=[‘name','age','gender'] >>> t2=[‘milo',30,'male'] >>> for each in zip(t,t2): print(each)
運(yùn)行結(jié)果:
(‘name', ‘milo') (‘a(chǎn)ge', 30) (‘gender', ‘male') for each in zip(t,t2): print(each)
總結(jié)
以上所述是小編給大家介紹的python中使用zip函數(shù)出現(xiàn)<zip object at 0x02A9E418>錯(cuò)誤的原因,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
python多進(jìn)程使用函數(shù)封裝實(shí)例
這篇文章主要介紹了python多進(jìn)程使用函數(shù)封裝實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05
Flask實(shí)現(xiàn)swagger在線文檔與接口測(cè)試流程詳解
Flask是一個(gè)使用Python編寫(xiě)的輕量級(jí)Web應(yīng)用框架。其WSGI工具箱采用 Werkzeug,模板引擎則使用Jinja2。Flask使用 BSD 授權(quán)。Flask也被稱(chēng)為“microframework”,因?yàn)樗褂煤?jiǎn)單的核心,用 extension 增加其他功能,本篇帶你用Flask實(shí)現(xiàn)swagger在線文檔與接口測(cè)試2022-07-07
Python實(shí)現(xiàn)學(xué)生管理系統(tǒng)的完整代碼(面向?qū)ο?
這篇文章主要介紹了Python實(shí)現(xiàn)學(xué)生管理系統(tǒng)的完整代碼(面向?qū)ο?,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04
在Python中使用__slots__方法的詳細(xì)教程
這篇文章主要介紹了在Python中使用__slots__方法的詳細(xì)教程,__slots__方法是Python的一個(gè)重要內(nèi)置類(lèi)方法,代碼基于Python2.x版本,需要的朋友可以參考下2015-04-04
利用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)易的截圖工具
這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)易的截圖工具,可以截完圖之后顯示并且永遠(yuǎn)前置,感興趣的小伙伴可以嘗試一下2022-07-07
python如何用columns參數(shù)獲取DataFrame各列的表頭名
這篇文章主要介紹了python如何用columns參數(shù)獲取DataFrame各列的表頭名問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
pytorch 常用函數(shù) max ,eq說(shuō)明
這篇文章主要介紹了pytorch 常用函數(shù) max eq說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06
Python實(shí)現(xiàn)的擬合二元一次函數(shù)功能示例【基于scipy模塊】
這篇文章主要介紹了Python實(shí)現(xiàn)的擬合二元一次函數(shù)功能,結(jié)合實(shí)例形式分析了Python基于scipy模塊進(jìn)行二元一次函數(shù)擬合相關(guān)科學(xué)運(yùn)算操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-05-05
django 數(shù)據(jù)庫(kù)連接模塊解析及簡(jiǎn)單長(zhǎng)連接改造方法
今天小編就為大家分享一篇django 數(shù)據(jù)庫(kù)連接模塊解析及簡(jiǎn)單長(zhǎng)連接改造方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08

