當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python Enumerate和Iterate的區別用法及代碼示例


在 Python 中,迭代序列中的元素是一項常見任務。為此目的,兩種常用的方法是enumerate和使用循環的迭代。雖然這兩種方法都允許您遍曆序列,但它們的實現和用例有所不同。

Python 中枚舉和迭代的區別

下麵是枚舉和迭代之間的區別Python.

Enumerate()方法

Enumerate()Python 中的 是一個內置方法,允許您迭代序列中的元素及其索引。它返回一個包含索引和相應元素的元組。這裏是

用法:

enumerate(iterable, start=0)

  • iterable: The sequence to be iterated (list, tuple, string, etc.).
  • start: Optional parameter specifying the starting index. Default is 0.

示例 1:下麵,代碼使用 `enumerate` 函數迭代 ‘fruits’ 列表,打印每個元素及其索引。

Python3


fruits = ['apple', 'banana', 'orange']
for index, fruit in enumerate(fruits):
    print(f"Index: {index}, Fruit: {fruit}")
輸出
Index: 0, Fruit: apple
Index: 1, Fruit: banana
Index: 2, Fruit: orange

示例 2:下麵的代碼使用 `enumerate` 函數迭代 ‘numbers’ 列表,打印每個元素及其位置(從 1 開始)。

Python3


numbers = [10, 20, 30, 40, 50]
for i, num in enumerate(numbers, start=1):
    print(f"Position: {i}, Value: {num}")
輸出
Position: 1, Value: 10
Position: 2, Value: 20
Position: 3, Value: 30
Position: 4, Value: 40
Position: 5, Value: 50

優點

  • 通過在單個循環中提供索引和元素來簡化代碼。
  • 避免手動維護計數器變量。
  • 提供一種幹淨且可讀的方式來跟蹤元素的位置。
  • 支持指定自定義起始索引。

迭代法

迭代用一個for循環, 比如一個for或者while循環是遍曆序列中元素的基本方法。語法很簡單:

用法

for element in iterable:

# Code block to process each element

示例 1:該代碼使用簡單的迭代循環遍曆‘colors’列表,打印每種顏色。

Python3


colors = ['red', 'green', 'blue']
for color in colors:
    print(f"Color: {color}")
輸出
Color: red
Color: green
Color: blue

示例 2:此代碼迭代 ‘numbers’ 列表,計算其元素的總和,然後打印總和。

Python3


numbers = [1, 2, 3, 4, 5]
sum_result = 0
for num in numbers:
    sum_result += num
print(f"Sum: {sum_result}")
輸出
Sum: 15

優點

  • 簡單: 簡單易懂。
  • 靈活性:適用於任何可迭代對象,不限於序列。
  • 適用性:適用於不需要索引信息的場景。
  • 資源效率:與相比消耗更少的內存enumerate.

Python 中枚舉和迭代的區別

讓我們強調一下之間的差異enumerate並以表格形式進行迭代。

方麵

迭代

枚舉

用法

元素的基本迭代

使用關聯索引進行迭代

函數

利用“for”循環或其他迭代方法

Python 中的內置函數(enumerate())

輸出

僅提供迭代期間的元素

在迭代期間提供索引和元素

示例

對於可迭代中的項目:

對於索引,枚舉(可迭代)中的值:

代碼複雜度

更簡單的代碼結構

需要額外的變量進行索引跟蹤

可讀性

簡單明了,特別適合簡單加工

增強可讀性,特別是對於複雜場景

Use-cases

適用於隻需要元素值的場景

當迭代過程中同時需要索引和值時非常方便

順序

秩序自然維持

訂單維護很重要,對列表很有用

示例:Python 中的枚舉和迭代

在此示例中,下麵的代碼定義了一個單詞列表‘words’,並演示了兩種迭代它的方法。第一種方法使用 `enumerate` 打印每個單詞及其位置和長度。第二種方法采用簡單的迭代循環和手動維護的位置計數器,獲得相同的結果。

Python3


words = ['apple', 'banana', 'orange', 'grape']
# Using enumerate
print("Using Enumerate:")
for index, word in enumerate(words, start=1):
    print(f"Position: {index}, Word: {word}, Length: {len(word)}")
# Using Iteration
print("\nUsing Iteration:")
position = 1
for word in words:
    print(f"Position: {position}, Word: {word}, Length: {len(word)}")
    position += 1
輸出
Using Enumerate:
Position: 1, Word: apple, Length: 5
Position: 2, Word: banana, Length: 6
Position: 3, Word: orange, Length: 6
Position: 4, Word: grape, Length: 5

Using Iteration:
Position: 1, Word: ...

結論

綜上所述,enumerate和使用循環的迭代是 Python 中很有價值的技術,它們之間的選擇取決於手頭任務的具體要求。enumerate當索引信息至關重要時,它是理想的選擇,它提供了一種幹淨而有效的方法來處理此類情況。另一方麵,常規迭代適用於不需要索引信息的簡單情況,提供更簡潔和直接的方法



相關用法


注:本文由純淨天空篩選整理自sanjeevikumar116大神的英文原創作品 Difference Between Enumerate and Iterate in Python。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。