python3的坑之可迭代對象

當從python2轉到python3時,在對list進行處理後經常會遇到結果不正常,經過查找發現python2 和python3對list處理後返回對象會有一些差別:

在python2 中,map(), filter等對list進行處理的方法會返回一個list對象:

而在python3中, 會返回一個可迭代對象:

從以上我們可以發現python2對list 處理還是返回list 結果,可以無限迭代;

但是python3處理後會返回一個對應的可迭代對象,且類似於指針,迭代之後會從對象中清空。

所以在使用這些方法時需要謹慎,必要時請改成 列表生成式:

result = [x+1 for x in list1]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章