迭代具有不同步長的列表的不同部分
假設你有一長串元素,並且你只對列表中的每個其他元素感興趣。也許你只想檢查列表中的第一個或最後一個元素或特定範圍的條目。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
索引和切片是它自己的主題。