国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python中使用zip函數出現 錯誤的原因

2020-01-04 14:26:21
字體:
來源:轉載
供稿:網友

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>錯誤的原因,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 克什克腾旗| 宜君县| 安陆市| 平泉县| 喀什市| 威海市| 田东县| 宝山区| 搜索| 巴彦淖尔市| 赤城县| 杭锦旗| 留坝县| 抚远县| 周口市| 贵港市| 甘德县| 灌阳县| 南投市| 九寨沟县| 衡阳县| 广丰县| 三穗县| 九江县| 油尖旺区| 濮阳县| 盐池县| 二连浩特市| 大英县| 宣武区| 福海县| 塔城市| 司法| 苍溪县| 彩票| 松江区| 天长市| 太湖县| 蒙自县| 全椒县| 全椒县|