Skip to content

迭代器

  • 依次从对象中把一个一个元素取出来

for 循环

for 循环的原理:

  1. 先通过 iter() 函数获取迭代器对象。
  2. 然后通过 next() 函数获取下一个值。
  3. 重复步骤 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