標籤:排列 小明 一個 for迴圈 迭代 port 注意 ble print
1.何為迭代:
對於給定list或者tuple,通過for迴圈來遍曆這個list或tuple,這種遍曆我們稱之為迭代(Iteration).
2.python中利用for...in語句來完成迭代語句:(1)迭代list:
使用for...in語句迭代list時,是通過下標完成的,迭代tuple類似
>>>months=[‘January‘,‘February‘,‘March‘]>>>for i in range(len(months)): print(months[i])JanuaryFebruaryMarch
(2)迭代dict:
首先明確,list這種資料類型是有下標的,但是像dict這種沒有沒有下標的資料類型,同樣是可以進行迭代的,只要該資料類型是可迭代對象,比如就迭代dict的方法如下:
>>>d = {‘小明‘:0,‘小紅‘:65,‘小蘭‘:88}>>>for key in d: print(key)
--------------------------------------------------------------------------------小明小蘭小紅
注意:a.因為dict的儲存不是按照list的方式順序排列,所以,迭代出的結果順序很可能不一樣。
b.dict迭代,在預設情況下迭代的key,如果想要迭代value可以用for value in d.values(),
如果要同時迭代key和value,可以用for k, v in d.items()。
迭代value情況:
>>>d = {‘小明‘:0,‘小紅‘:65,‘小蘭‘:88}>>>for value in d.values(): print(value)-----------------------------------------------------------------------------------65088
同時迭代key和value情況:
>>>d = {‘小明‘:0,‘小紅‘:65,‘小蘭‘:88}>>>for k, v in d.items(): print(k,v)-----------------------------------------------------------------------------------小明 0小紅 65小蘭 88(3)迭代字串
因為字串也是可迭代對象,因此我們可以對字串進行迭代:
>>>for ch in ‘ABC‘: print(ch)
-------------------------------------------------------------------------------------
A
B
C
3.利用collections模組的Iterable類型判斷一個對象是否是可迭代對象
通常我們使用for迴圈時,只要這個對象是可迭代對象,for迴圈就能正常運行,而不用去管這個對象的是哪種資料類型的,但是我們怎麼才能知道這個對象是否是可迭代對象呢,這就需要我們自己去判斷了,方法是通過collections模組的Iterable類型判斷
>>> from collections import Iterable>>> isinstance(‘abc‘, Iterable) # str是否可迭代True>>> isinstance([1,2,3], Iterable) # list是否可迭代True>>> isinstance(123, Iterable) # 整數是否可迭代False
4.使用python內建函數enumerate函數同時迭代list索引及元素本身
>>>for i, value in enumerate([‘January‘,‘February‘,‘March‘]): print(i,value)----------------------------------------------------------------------------0 January1 February2 March
ps:上述的for迴圈語句,引用了兩個變數,這在python中是很常見的,例:
>>> for x, y in [(1, 2), (2, 4), (3, 8)]:... print(x, y)...---------------------------------------------------------------1 22 43 8
python之迭代