python之迭代

來源:互聯網
上載者:User

標籤:排列   小明   一個   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之迭代

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.