Appearance
迭代器
- 依次从对象中把一个一个元素取出来
for 循环
for 循环的原理:
- 先通过
iter()函数获取迭代器对象。 - 然后通过
next()函数获取下一个值。 - 重复步骤 2,直到抛出
StopIteration异常。
python
for i in [1, 2, 3]:
print(i)创建迭代器
- 通过
iter()函数将可迭代对象转换为迭代器。 - 通过
next()函数获取下一个值。 - 也可以通过
iterable.__next__()函数获取下一个值
python
iterable = iter(range(10))
print(iterable.__next__()) # 0
print(iterable.__next__()) # 1
print(next(iterable)) # 2生成器
使用 yield 关键字定义的函数,都是生成器。
python
def countdown(n):
while n > 0:
yield n
n -= 1
# 创建生成器对象
generator = countdown(5)
# 通过迭代生成器获取值
print(next(generator)) # 输出: 5
print(next(generator)) # 输出: 4
print(next(generator)) # 输出: 3
# 使用 for 循环迭代生成器
for value in generator:
print(value) # 输出: 2 1