迭代具有不同步長的列表的不同部分

假設你有一長串元素,並且你只對列表中的每個其他元素感興趣。也許你只想檢查列表中的第一個或最後一個元素或特定範圍的條目。Python 具有強大的索引內建函式。以下是如何實現這些方案的一些示例。

這是一個簡單的列表,將在整個示例中使用:

lst = ['alpha', 'bravo', 'charlie', 'delta', 'echo']

迭代整個列表

要迭代列表中的每個元素,可以使用如下所示的 for 迴圈:

for s in lst:
    print s[:1] # print the first letter

for 迴圈為 lst 的每個元素分配 s。這將列印:

a
b
c
d
e

通常,你需要元素和該元素的索引。enumerate 關鍵字執行該任務。

for idx, s in enumerate(lst):
    print("%s has an index of %d" % (s, idx))

索引 idx 將從零開始,每次迭代遞增,而 s 將包含正在處理的元素。之前的程式碼片段將輸出:

alpha has an index of 0
bravo has an index of 1
charlie has an index of 2
delta has an index of 3
echo has an index of 4

迭代子列表

如果我們想迭代一個範圍(記住 Python 使用從零開始的索引),請使用 range 關鍵字。

for i in range(2,4):
    print("lst at %d contains %s" % (i, lst[i]))

這將輸出:

lst at 2 contains charlie
lst at 3 contains delta

該列表也可以被切片。下面的切片表示法從索引 1 處的元素到步驟為 2 的結尾。兩個 for 迴圈給出相同的結果。

for s in lst[1::2]:
    print(s)

for i in range(1, len(lst), 2):
    print(lst[i])

上面的程式碼段輸出:

bravo
delta

索引和切片是它自己的主題。