通过应用相同的逻辑重复多次的过程称为迭代。在像Python这样的编程语言中,创建了一个循环,只有很少的条件来执行迭代,直到超过限制。如果循环连续执行 6 次,那么我们可以说特定块已经迭代了 6 次。
例子:
Python3
a = [0, 5, 10, 15, 20]
for i in a:
if i % 2 == 0:
print(str(i)+' is an Even Number')
else:
print(str(i)+' is an Odd Number')
Python3
iter_list = iter(['Geeks', 'For', 'Geeks'])
print(next(iter_list))
print(next(iter_list))
print(next(iter_list))
Python3
def sq_numbers(n):
for i in range(1, n+1):
yield i*i
a = sq_numbers(3)
print("The square of numbers 1,2,3 are : ")
print(next(a))
print(next(a))
print(next(a))
输出:
0 is an Even Number
5 is an Odd Number
10 is an Even Number
15 is an Odd Number
20 is an Even Number
迭代器
迭代器是一个包含可数数量值的对象,用于迭代可迭代对象,如列表、元组、集合等。迭代器是使用类实现的,这里不需要用于迭代的局部变量,它遵循惰性评估 表达式的评估将被暂停并存储在内存中,直到项目被专门调用,这有助于我们避免重复评估。由于实现了延迟评估,它只需要 1 个内存位置来处理值,当我们使用大型数据集时,RAM 空间的浪费将减少,同时加载整个数据集的需要将不会存在。
使用迭代器-
- iter()关键字用于创建包含可迭代对象的迭代器。
- next( ) 关键字用于调用可迭代对象中的下一个元素。
- 可迭代对象完成后,再次使用它们,将它们重新分配给同一个对象。
例子:
蟒蛇3
iter_list = iter(['Geeks', 'For', 'Geeks'])
print(next(iter_list))
print(next(iter_list))
print(next(iter_list))
输出:
Geeks
For
Geeks
发电机
这是另一种以简单方式创建迭代器的方法,它使用关键字“yield”而不是在定义的函数中返回它。生成器是使用函数实现的。就像迭代器一样,生成器也遵循惰性求值。在这里,yield函数在不影响或退出函数的情况下返回数据。它将以可迭代格式返回一个数据序列,我们需要迭代该序列以使用数据,因为它们不会将整个序列存储在内存中。
例子:
蟒蛇3
def sq_numbers(n):
for i in range(1, n+1):
yield i*i
a = sq_numbers(3)
print("The square of numbers 1,2,3 are : ")
print(next(a))
print(next(a))
print(next(a))
输出:
The square of numbers 1,2,3 are :
1
4
9
迭代器与生成器之间的差异表
Iterator | Generator |
---|---|
Class is used to implement an iterator |
Function is used to implement a generator. |
Local Variables aren’t used here. |
All the local variables before the yield function are stored. |
Iterators are used mostly to iterate or convert other objects to an iterator using iter() function. | Generators are mostly used in loops to generate an iterator by returning all the values in the loop without affecting the iteration of the loop |
Iterator uses iter() and next() functions | Generator uses yield keyword |
Every iterator is not a generator | Every generator is an iterator |