在 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
當索引信息至關重要時,它是理想的選擇,它提供了一種幹淨而有效的方法來處理此類情況。另一方麵,常規迭代適用於不需要索引信息的簡單情況,提供更簡潔和直接的方法
相關用法
- Python Enumerate()用法及代碼示例
- Python Example filter()用法及代碼示例
- Python Event clear()用法及代碼示例
- Python Event is_set()用法及代碼示例
- Python Event set()用法及代碼示例
- Python Event wait()用法及代碼示例
- Python Excel轉PDF用法及代碼示例
- Python Excel轉CSV用法及代碼示例
- Python Excel轉XML Format用法及代碼示例
- Python Escaped String轉JSON用法及代碼示例
- Python Epoch Time轉Date Time用法及代碼示例
- Python String format()用法及代碼示例
- Python abs()用法及代碼示例
- Python any()用法及代碼示例
- Python all()用法及代碼示例
- Python ascii()用法及代碼示例
- Python bin()用法及代碼示例
- Python bool()用法及代碼示例
- Python bytearray()用法及代碼示例
- Python callable()用法及代碼示例
- Python bytes()用法及代碼示例
- Python chr()用法及代碼示例
- Python compile()用法及代碼示例
- Python classmethod()用法及代碼示例
- Python complex()用法及代碼示例
注:本文由純淨天空篩選整理自sanjeevikumar116大神的英文原創作品 Difference Between Enumerate and Iterate in Python。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。