python語言的for循環抽象程度很高,只要是可迭代的對象就可以使用for循環。
判斷一個對象是可迭代對象,使用collections模塊的Iterable類型來判斷。
>>>from collections import Iterable
>>>isinstance('abc', Iterable)# str是否可迭代
True
>>>isinstance([1,2,3], Iterable)# list是否可迭代
True
>>>isinstance(123, Iterable)# 整數是否可迭代
False
對一個字典進行遍歷,一般情況下默認都是遍歷dict的key值,遍歷的結果順序很可能不一樣,因為在dict中是沒有順序的。
>>>d = {'a':1,'b':2,'c':3}
>>>for key in d:
...print key
...
a
c
b
如果要迭代value,可以用for value in d.itervalues(),如果要同時迭代key和value,可以用for k, v in d.iteritems()。
如果要對list實現類似Java那樣的下標循環怎么辦?Python內置的enumerate函數可以把一個list變成索引-元素對,這樣就可以在for循環中同時迭代索引和元素本身:
>>>for i, value in enumerate(['A','B','C']):
...print i, value
...
0 A
1 B
2 C