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