for 迴圈用法
for迴圈是從序列裡逐一取出元素來處理
■ range(起始值, 終止值, 間隔值)
如果要對索引值或是一個範圍內的方式處理可以用range()。
for i in range(6):
print(i)
■ reversed()
反向處理,從序列的後頭往開頭處理。
for i in reversed(range(6)):
print(i)
■ zip()
同時迭代多個序列來處理。
for i, j in zip(reversed(range(6)), list1):
print(i, j)
■ enumerate()
同時迭代索引值和元素
list1 = ["apple", "banana", "kiwi", "orange", "papaya", "coconut"]
for i, k in enumerate(list1):
print(i, k)
"""
0 apple
1 banana
2 kiwi
3 orange
4 papaya
5 coconut
"""
如果只用一個變數則會用元組(tuple)方式回傳。
list1 = ["apple", "banana", "kiwi", "orange", "papaya", "coconut"]
for i in enumerate(list1):
print(i)
"""
(0, 'apple')
(1, 'banana')
(2, 'kiwi')
(3, 'orange')
(4, 'papaya')
(5, 'coconut')
"""
■ sorted(序列, reverse=)
排序處理,可以進行排序之後再處理,reverse預設為False。
list1 = ["apple", "banana", "kiwi", "orange", "papaya", "coconut"]
for i in sorted(list1, reverse=True):
print(i)
"""
papaya
orange
kiwi
coconut
banana
apple
"""
■ 序列[:]
一邊進行迭代一邊改變序列內容。
list1 = ["apple", "banana", "kiwi", "orange", "papaya", "coconut"]
for i in list1[:] :
if len(i) < 5 :
list1.remove(i)
print(list1)
"""
['apple', 'banana', 'orange', 'papaya', 'coconut']
"""
[表達式 for 元素 in 序列 (if條件式)]
■ 單行for迴圈
把單行for迴圈寫入串列或者字典裡。
list1 = ["apple", "banana", "kiwi", "orange", "papaya", "coconut"]
list2 = []
for i in list1:
list2.append("like {:s}".format(i))
print(list2)
把上面的for迴圈用單行的方式寫入list2裡可參考如下
list1 = ["apple", "banana", "kiwi", "orange", "papaya", "coconut"]
list2 = ["lile {:s}".format(i) for i in list1]
print(list2)
■ 單行for迴圈加上if判斷式
也可以把if判斷式加入進for裡。
list1 = ["apple", "banana", "kiwi", "orange", "papaya", "coconut"]
list2 = []
for i in list1:
if len(i) > 5 :
list2.append(i)
print(list2)
上面的for迴圈加if判斷式也可以寫成如下
list1 = ["apple", "banana", "kiwi", "orange", "papaya", "coconut"]
list2 = [i for i in list1 if len(i) > 5]
print(list2)