l1 = [1, 2, 3, 4]
l2 = [11, 22, 33, 44]
l = zip(l1, l2)
for i in l:
print(i)
l3 = [i for i in l]
print(l3)
輸出:
(1, 11)
(2, 22)
(3, 33)
(4, 44)
為什麼l3輸出為呢,這是因為zip()函式的返回結果為乙個迭代器,根據迭代器的意義可知,在for迴圈的時候,已經將l中的資料取出來了,所以到for結束時了l已經是乙個空列表了,之後再用列表生成,因為l是空的,所以l3也是空的,故輸出。
當我們查可迭代物件時,會發現list,tuple等都是可迭代的,然後看如下**:
l1 = (1, 2, 3)
for i in l1:
print(i)
l2 = [i for i in l1]
print(l2)
輸出:
123
[1, 2, 3]
為什麼list就可以輸出呢,這就是我要講的區別:可迭代跟迭代器不是乙個概念,迭代器是可迭代的,但不可以說可迭代的都是迭代器,就像牛肉是可以吃的,但是可以吃的比一定是牛肉,第乙個取沒了的是迭代器,對於可迭代的比如list沒有這個說法。 PYTHON 迭代器 可迭代物件
通過重複執行的 處理相似的資料集的過程,並且本次迭代的處理資料要依賴上一次的結果繼續往下做,上一次產生的結果為下一次產生結果的初始狀態,如果中途有任何停頓,都不能算是迭代。1 非迭代例子 loop 0 while loop 3 print hello world loop 1 2 迭代例子 loop...
python 迭代器與可迭代物件
主要有兩個方法next 與iter next不斷返回下乙個元素,知道元素全部返回後出現異常,可以節省記憶體空間。iter是迭代,可以把乙個列表直接轉換成迭代器,然後使用next 方法。data list 1,2,3,4,5 data list iter data list print next da...
Python 迭代器與可迭代物件
迭代器可以讓我們訪問集合的時候變得非常方便。之前我們通過for.in.的方式訪問乙個集合的時候,就是使用迭代器完成的。如果沒有迭代器,那麼我們只能通過while迴圈,每次迴圈的時候通過下標訪問了。可以直接使用for迴圈遍歷的物件,成為可迭代的物件,常見的可迭代的物件有 list tuple dict...