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)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *