如何在 Python 的元組 for 迴圈中訪問索引?


在處理 Python 中的資料序列時,由於元組的不可變性和效率,元組是極好的選擇之一。幸運的是,Python 提供了一些內建函式來簡化和加快元組的操作,尤其是在需要在 for 迴圈中訪問每個元素的索引時。

本文將探討兩種在元組 for 迴圈中訪問索引的方法:`range()` 函式和 `enumerate()` 函式。

什麼是 Python 中的元組?

Python 中的元組是由逗號分隔的一組不可變元素。例如,考慮以下元組定義:

my_tuple = (1, "hello", 3.14)

列表和元組有很多共同點,但一些關鍵區別使它們截然不同。首先要記住的是,元組一旦建立就不能修改。換句話說,你不能新增、刪除或更改元組中的元素。

由於元組是不可變的,因此它們適合儲存在程式執行期間不應更改的資訊。例如,如果你正在編寫一個需要儲存一組常量的程式,你可能會使用元組來確保這些值將來不會意外被修改。

訪問元組

為了執行此操作,我們使用兩種不同的方法:

  • `enumerate()`

  • `range()`

1. 使用 `enumerate()`

在 Python 中,`enumerate()` 函式是一個內建函式,它迭代一個序列並透過跟蹤其索引來跟蹤序列中每個項。因此,例如,如果你正在操作序列中的每個元素,可以使用此方法來訪問它們的索引。

此函式根據輸入物件(例如元組、列表或字串)返回一系列元組。每個元組包含兩個值:序列中當前項的索引及其值。

以下示例顯示如何將 `enumerate()` 與元組一起使用:

示例

my_tuple = ('apple', 'banana', 'orange')
for index, value in enumerate(my_tuple):
   print(f"The index of {value} is {index}.")

輸出

The index of apple is 0.
The index of banana is 1.
The index of orange is 2.

如上例所示,`enumerate()` 生成一系列元組,其中第一個值是索引,第二個值是每個項的值。在 for 迴圈中,每個元組的索引和值被解包到兩個變數(index 和 value)中,這些變數可用於列印每個項的值。

透過這種方式,當需要知道元組中每個項的索引時,`enumerate()` 特別有用。例如,如果你想查詢元組中特定值的索引,你就可以搜尋它。

2. 使用 `range()`

使用 `range()` 函式,你也可以在 for 迴圈中訪問元組的索引。預設情況下,`range()` 返回一個從零開始並遞增一的數字序列。使用 `len()` 函式計算元組的長度,然後使用 `range()` 函式生成元組的索引。

以下是如何在 for 迴圈中使用 `range()` 函式來訪問元組索引的示例:

示例

my_tuple = ('apple', 'banana', 'cherry', 'date')
for i in range(len(my_tuple)):
   print(f"The element at index {i} is {my_tuple[i]}")

輸出

The element at index 0 is apple
The element at index 1 is banana
The element at index 2 is cherry
The element at index 3 is date

在這裡,我們首先使用 `len()` 函式獲取元組的長度,然後使用 `range()` 函式生成從 0 到元組長度減 1 的數字序列。

然後,使用索引表示法,我們可以透過迭代此數字序列來訪問元組的相應元素。

如果需要對元組索引執行某些操作,例如列印或比較其元素,則使用 `range()` 函式會很有幫助。但是,如果需要根據元素的位置更改元組中的任何元素,則必須建立一個新的元組。

結論

許多 Python 程式設計專案需要在迴圈中訪問元組元素的索引,原因包括在資料分析中提取和操作資料、在遊戲開發中跟蹤遊戲物件位置以及在文字處理中訪問單個單詞或字元。

本文介紹了實現此目標的兩種不同方法:使用`range()`和`enumerate()`函式。使用這些工具,可以提高程式碼的可讀性、效率和可維護性。選擇適合你需求的方法至關重要。

更新於:2023年3月28日

2K+ 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.