Menu
CoddyTech

Iter() 和 Next() 函数

Coddy Python 迭代器 课程的第 2 课,共 13 课。

在 Python 中,iter() 和 next() 函数是使用迭代器的基础。让我们来了解这两个函数,看看如何用它们创建和操作基本的迭代器。

iter() 函数

iter() 函数用于从可迭代对象创建迭代器对象。它的基本语法是:

iter(iterable)

对可迭代对象调用 iter() 时,它会返回一个迭代器对象,你可以用它逐个访问可迭代对象中的元素。

next() 函数

next() 函数用于从迭代器中获取下一个元素。它的基本语法是:

next(iterator)

每次对迭代器调用 next(),都会返回序列中的下一个元素。如果没有更多元素,就会引发 StopIteration 异常。

使用 iter() 和 next()

来看看这两个函数如何配合使用:

# 创建一个列表(可迭代对象)
fruits = ['apple', 'banana', 'cherry']

# 从列表创建一个迭代器
fruit_iterator = iter(fruits)

# 用 next() 从迭代器中获取元素
print(next(fruit_iterator))  # 输出:apple
print(next(fruit_iterator))  # 输出:banana
print(next(fruit_iterator))  # 输出:cherry
# print(next(fruit_iterator))  # 这会引发 StopIteration 异常

在这个示例中,我们使用 iter() 从 fruits 列表创建了一个迭代器 fruit_iterator。然后,我们使用 next() 从迭代器中逐个获取元素。

创建一个基本的自定义迭代器

你也可以在类中实现 __iter__() 和 __next__() 方法,创建自己的迭代器:

class CountUp:
    def __init__(self, start, end):
        self.current = start
        self.end = end
    
    def __iter__(self):
        return self
    
    def __next__(self):
        if self.current > self.end:
            raise StopIteration
        else:
            self.current += 1
            return self.current - 1

# 使用自定义迭代器
counter = CountUp(1, 3)
print(next(counter))  # 输出:1
print(next(counter))  # 输出:2
print(next(counter))  # 输出:3

这个自定义迭代器 CountUp 会从起始数字递增到结束数字。__iter__() 方法会返回迭代器对象本身,而 __next__() 方法则定义了如何获取下一个值。

理解 iter() 和 next() 对于在 Python 中使用迭代器至关重要。它们能让你高效地创建和操作数据序列。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

challenge icon

挑战

简单

创建一个迭代器,生成不超过给定上限的偶数序列。使用 iter() 和 next() 函数来实现这个迭代器。

已提供以下内容:

  • 一个作为输入的整数 limit

你的迭代器应当:

  • 从 2 开始生成偶数
  • 在达到或超过给定上限时停止

每行打印一个生成的偶数。

输入将以表示整数的字符串形式提供。

亲手试试

# 读取输入
limit = int(input())

# TODO:在这里编写你的代码
# 使用 iter() 和 next() 实现偶数迭代器

# 打印结果的示例
# print(next_even_number)

Python 迭代器中的所有课

自己练习: Python 在线编译器