迭代

若是給定一個list或tuple,能夠經過for循環來遍歷這個list或tuple,這種遍歷咱們稱爲迭代(Iteration)
在Python中,迭代是經過for ... in來完成的
Python的for循環抽象程度要高於C的for循環,由於Python的for循環不只能夠用在list或tuple上,還能夠做用在其餘可迭代對象上
當使用for循環時,只要做用於一個可迭代對象,for循環就能夠正常運行,而無需太關心該對象到底是list仍是其餘數據類型
任何可迭代對象均可以做用於for循環,包括自定義的數據類型,只要符合迭代條件,就可使用for循環函數

 

迭代list
  迭代list是經過下標完成的spa

  for x in range(5):
    print(x)

 

迭代dictcode

  list這種數據類型雖然有下標,但不少其餘數據類型是沒有下標的,但只要是可迭代對象,不管有無下標,均可以迭代,好比dict
  由於dict的存儲不是按照list的方式順序排列,因此,迭代出的結果順序極可能不同對象

    d = {'a': 1, 'b': 2, 'c': 3}
    for key in d:   #默認狀況下,dict迭代的是key
        print(key)
    #輸出:a 
    #     b
    #     c
        
    for key in d.values(): #若是要迭代value,可用for value in d.values()
        print(key)  
    #輸出:1 
    #     2
    #     3
    
    for k, v in d.items():  #若是要同時迭代key和value,能夠用for k, v in d.items()
        print(k, v)  
    #輸出:a 1 
    #     b 2
    #     c 3

 

迭代字符串blog

  因爲字符串也是可迭代對象,所以,也能夠做用於for循環索引

    for ch in 'ABC':
        print(ch)  
    #輸出:A
    #     B
    #     C

 

判斷是否迭代字符串

  經過collections模塊的Iterable類型判斷對象是不是迭代對象,若是是則說明能夠經過for...in進行迭代it

   from collections import Iterable
print(isinstance('abc', Iterable)) #輸出:True,str是否可迭代 print(isinstance([1,2,3], Iterable)) #輸出:True,list是否可迭代 print(isinstance(123, Iterable)) #輸出:False,整數是否可迭代

 

輸出下標並迭代io

  Python內置的enumerate函數可把list變成索引-元素對,這樣就能夠在for循環中同時迭代索引和元素自己for循環

   for i, value in enumerate(['A', 'B', 'C']): #for循環裏,同時引用了兩個變量,在Python裏是很常見的
        print(i, value) 
   #輸出:0 A
   #     1 B
   #     2 C
相關文章
相關標籤/搜索