用不同的步進來遍歷列表
Jinku Hu
2023年1月30日
迭代具有不同步長的列表的不同部分
假設你有一長串元素,但你只對列表中的每隔一個元素感興趣。比如只對第 1、3、5…元素感興趣,或者也許你只想檢查列表中的第一個或最後一個元素,或列表特定範圍的元素。Python 具有強大的索引內建功能。以下是如何實現這些方案的一些示例。
我們將在整個示例中使用下面的這個簡單列表,
lst = ["January", "Febuary", "March", "April", "May"]
迭代整個列表
要迭代列表中的每個元素,for
可以使用如下所示的迴圈:
for s in lst:
print s[:1] # print the first letter
的 for
迴圈分配 S 表示的每個元素 lst
。這將列印:
a
b
c
d
e
有時,你需要元素和該元素的索引,那我們可以使用 enumerate
關鍵字。
for idx, s in enumerate(lst):
print("%s has an index of %d" % (s, idx))
索引 idx
將從零開始,每次迭代都會遞增,而 s
等於該索引位置的元素。我們會得到以下的輸出,
January has an index of 0
Febuary has an index of 1
March has an index of 2
April has an index of 3
May has an index of 4
迭代子列表
如果我們想迭代列表中某個範圍,可以用 range
關鍵字。
for i in range(2,4):
print("lst at %d contains %s" % (i, lst[i]))
這將輸出:
lst at 2 contains March
lst at 3 contains April
我們也可以用切片方法。下面的切片表示從索引 1
開始到結束的,步進為 2
的子列表。兩個 for
迴圈給出相同的結果。
for s in lst[1::2]:
print(s)
for i in range(1, len(lst), 2):
print(lst[i])
上面的程式碼段輸出:
Febuary
April