天天看點

【Python】學習筆記十四:循環進階

range()

在Python中,for循環後的in跟随一個序列的話,循環每次使用的序列元素,而不是序列的下标。

我們繼續開發range的功能,以實作下标對循環的控制:

s = 'abcdefghj'
for i in range(0,len(s),3):
    print(i,s[i])      

在該例子中,我們利用len()函數和range()函數,用i作為S序列的下标來控制循環。在range函數中,分别定義上限,下限和每次循環的步長。這就和C語言中的for循環相類似了。

enumerate()

利用enumerate()函數,可以在每次循環中同時得到下标和元素:

s = 'abcdefghj'
for (seq,char) in enumerate(s):
    print(seq)
    print(char)      

實際上,enumerate()在每次循環中,傳回的是一個包含兩個元素的定值表(tuple),兩個元素分别賦予seq和char

zip()

如果你多個等長的序列,然後想要每次循環時從各個序列分别取出一個元素,可以利用zip()友善地實作:

temp_a = (1,2,3)
temp_b = ['a',2,3]
temp_c = (1,'oliver',3)
for (a,b,c) in zip(temp_a,temp_b,temp_c):
    print(a,b,c)      

每次循環時,從各個序列分别從左到右取出一個元素,合并成一個tuple,然後tuple的元素賦予給a,b,c

螢幕列印結果如下:

​​

【Python】學習筆記十四:循環進階