[Python] 在For-迴圈中存取索引

理解並運用在 Python 的 for 迴圈中存取索引的各種方法是非常重要的。本文簡要闡述這些方法。

使用 enumerate 函數

enumerate 函數是Python的內建函數,返回一個迭代器,產生包含索引和可迭代項目的值的元組。

python
for index, value in enumerate(['a', 'b', 'c']):
    print(index, value) # 輸出索引和值
0 a
1 b
2 c

上述代碼使用 enumerate 函數迭代列表並打印該索引及其值。

利用序列長度的範圍

您還可以使用 range 函數與 len 函數來在for迴圈中訪問索引。

python
my_list = ['a', 'b', 'c']
for i in range(len(my_list)):
    print(i, my_list[i]) # 輸出索引及其值
0 a
1 b
2 c

這裡,i 代表索引,my_list[i] 給出該索引的值。 rangelen 函數使這種方法相當簡單明了。

使用計數變量

或者,使用計數變量也是一種手動但有效的訪問索引的方式。

python
my_list = ['a', 'b', 'c']
counter = 0
for value in my_list:
    print(counter, value) # 輸出計數和值
    counter += 1
0 a
1 b
2 c

在這種方法中,每次迭代都會增加計數變量以表示當前元素的索引。

常見問答

  1. 存取迴圈中的索引的最佳方法是什麼? 根據代碼的上下文和特定要求,不同的方法可能更受歡迎。enumerate 函數通常被認為是簡潔而富有Python特色的。
  2. 這些方法之間有性能差異嗎? 一般而言,對於標準用例,性能差異可以忽略不計。然而,在某些情況下,enumerate 可能稍微高效一些。
  3. 這些方法可以與除列表之外的數據類型一起使用嗎? 是的,這些技術可以與其他可迭代數據類型一起使用,例如元組、字符串等。
  4. 如果我嘗試訪問超出範圍的索引會怎麼樣? 嘗試訪問超出範圍的索引將引發 IndexError
  5. 我可以使用這些方法進行負索引嗎? 是的,可以使用負索引來存取可迭代物的末尾的元素,遵循與陣列相同的原則。
© Copyright 2023 CLONE CODING