当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。