python中使用zip函數(shù)出現(xiàn)<zip object at 0x02A9E418>錯誤的原因
python中zip函數(shù)返回一個以元組為元素的列表,其中第 i 個元組包含每個參數(shù)序列的第 i 個元素。返回的列表長度被截斷為最短的參數(shù)序列的長度。只有一個序列參數(shù)時,它返回一個1元組的列表。沒有參數(shù)時,它返回一個空的列表。概括起來一句話: zip函數(shù)返回的是一個列表,但是列表里面的元素是由一個個元組構成的..
在Python中使用zip函數(shù),出現(xiàn)<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的區(qū)別(一):返回的是一個支持遍歷的對象,而不是一個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) # 運行良好 ### 返回的對象支持遍歷的操作
問題二:為何有這種不同
我想最重要的原因是節(jié)約了不少的內存吧。Python的運行效率和編譯類型的語言自然是沒法比,但是能優(yōu)化就優(yōu)化一點吧~誰不想有更高的追求呢。
問題三:更多注解
這個zip在不同版本的不同反應了python的一個演變:大部分返回list的函數(shù)不在返回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') (‘a(chǎn)ge', 30) (‘gender', ‘male') for each in zip(t,t2): print(each)
總結
以上所述是小編給大家介紹的python中使用zip函數(shù)出現(xiàn)<zip object at 0x02A9E418>錯誤的原因,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關文章
一文深入學習Python中的os.listdir函數(shù)
這篇文章主要給大家介紹了關于Python中os.listdir函數(shù)的相關資料,os.listdir是 Python中的一個函數(shù),它的意思是返回指定目錄下的文件和文件夾的名稱的列表,需要的朋友可以參考下2023-10-10詳解Python之Scrapy爬蟲教程NBA球員數(shù)據(jù)存放到Mysql數(shù)據(jù)庫
這篇文章主要介紹了詳解Python之Scrapy爬蟲教程NBA球員數(shù)據(jù)存放到Mysql數(shù)據(jù)庫,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01python 識別登錄驗證碼圖片功能的實現(xiàn)代碼(完整代碼)
這篇文章主要介紹了python 識別登錄驗證碼圖片功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07