如果給定一個list或tuple,我們可以通過for迴圈來遍歷這個list或tuple,這種遍歷我們稱為迭代(Iteration)。 在Python中,迭代是通過for...in來完成的,而很多語言比如C語言,迭代list是通過下標完成的。 Python的for迴圈抽象程度要高於C的for迴圈,因為 ...
如果給定一個list或tuple,我們可以通過for迴圈來遍歷這個list或tuple,這種遍歷我們稱為迭代(Iteration)。
在Python中,迭代是通過for...in來完成的,而很多語言比如C語言,迭代list是通過下標完成的。
Python的for迴圈抽象程度要高於C的for迴圈,因為Python的for迴圈不僅可以用在list或tuple上,還可以用在其他可迭代對象上。list這種數據類型雖然有下標,但很多其他數據類型是沒有下標的,但是,只要是可迭代對象,無論有無下標,都可以迭代。
判斷一個對象是否可迭代對象,可以通過collections模塊的Iterable類型判斷:
>>> from collections import Iterable >>> isinstance('abc', Iterable) True >>> isinstance([1, 2, 3], Iterable) True >>> isinstance(123, Iterable) False
如果要對list實現類似Java那樣的下標迴圈,Python內置的enumerate函數可以把一個list變成索引-元素對,這樣就可以在for迴圈中同時迭代索引和元素本身:
>>> for i, value in enumerate(['A', 'B', 'C']): ... print(i, value) ... 0 A 1 B 2 C