用不同的步進來遍歷列表

Jinku Hu 2023年1月30日
  1. 迭代具有不同步長的列表的不同部分
  2. 迭代整個列表
  3. 迭代子列表
用不同的步進來遍歷列表

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

假設你有一長串元素,但你只對列表中的每隔一個元素感興趣。比如只對第 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
作者: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

DelftStack.com 創辦人。Jinku 在機器人和汽車行業工作了8多年。他在自動測試、遠端測試及從耐久性測試中創建報告時磨練了自己的程式設計技能。他擁有電氣/ 電子工程背景,但他也擴展了自己的興趣到嵌入式電子、嵌入式程式設計以及前端和後端程式設計。

LinkedIn Facebook