1. python中的iter()函数 迭代子
Python 中的 iter()
函数是内置函数,它负责创建一个迭代器。这个函数接受两个参数:
- 第一个参数是准备转换为迭代器的对象。
- 第二个参数是一个可选的 sentinel 对象,它用于迭代器中的
next()
方法,当迭代器到达 sentinel 值时会停止迭代。
基本用法
当 iter()
函数只有一个参数时,它将该对象作为迭代器。这个对象必须有自己的 __iter__()
方法,该方法返回一个迭代器对象。
示例:
my_list = [1, 2, 3, 4, 5]
my_iter = iter(my_list)
print(next(my_iter)) # 输出: 1
print(next(my_iter)) # 输出: 2
在这个例子中,my_list
是一个列表,它有一个 __iter__()
方法,返回一个迭代器,可以迭代列表中的元素。
使用 sentinel 参数
当 iter()
函数有两个参数时,它创建一个迭代器,该迭代器会无限迭代,直到 next()
方法返回的值与 sentinel 值相等。
示例:
def infinite_sequence():
count = 0
while True:
yield count
count += 1
# 使用 iter() 函数和 sentinel 来控制迭代
it = iter(infinite_sequence())
try:
while True:
value = next(it)
if value == 10: # Sentinel value
break
print(value)
except StopIteration:
print("Iteration stopped.")
在这个例子中,infinite_sequence
函数生成一个无限的迭代器。我们使用 iter()
函数将其转换为迭代器 it
,并通过设置一个 sentinel 值(在这个例子中是数字 10)来控制迭代,这样当迭代到数字 10 时迭代就会停止。
iter()
函数是实现自定义迭代器和生成器时的一个有用工具,它允许你以统一的方式处理可迭代对象和无限序列。