本文最后更新于231 天前,其中的信息可能已经过时,如有错误请发送邮件到zhangweihao22@outlook.com
迭代操作就相当于 C 语言中的 for 循环遍历操作。(不过迭代操作要高级一点,可以定义迭代步长…?) 迭代器就相当于实现 for 遍历操作的一个函数(容器)
AI explanation
迭代操作 迭代操作指的是对一组元素逐个进行访问的过程。在 Python 中,很多对象都支持迭代操作,像列表、元组、字符串、字典等,这些对象被叫做可迭代对象。借助迭代操作,你能够依次访问可迭代对象里的每个元素,而不用考虑其具体的实现细节。 示例代码
# 迭代列表
my_list = [1, 2, 3, 4, 5]
for num in my_list:
    print(num)
# 迭代字符串
my_string = "Hello"
for char in my_string:
    print(char)
在上述代码中,for 循环对列表 my_list 和字符串 my_string 进行迭代操作,逐个访问其中的元素并打印出来。
迭代器
迭代器是实现了迭代协议的对象。在 Python 中,迭代器需要实现两个方法:__iter__() 和 __next__()。
__iter__():该方法返回迭代器对象本身,它使得迭代器可以在for循环等迭代操作中被使用。__next__():该方法返回迭代器的下一个元素。当没有更多元素时,它会抛出StopIteration异常。 示例代码
class MyRange:
    def __init__(self, start, end):
        self.start = start
        self.end = end
        self.current = start
    def __iter__(self):
        return self
    def __next__(self):
        if self.current < self.end:
            value = self.current
            self.current += 1
            return value
        else:
            raise StopIteration
# 使用自定义迭代器
my_range = MyRange(0, 5)
for num in my_range:
    print(num)
在上述代码中,MyRange 类实现了迭代器协议。__iter__() 方法返回了迭代器对象本身,__next__() 方法返回下一个元素,当到达 end 值时抛出 StopIteration 异常。
可迭代对象与迭代器的关系
可迭代对象是指实现了 __iter__() 方法的对象,这个方法会返回一个迭代器。也就是说,可迭代对象是可以被迭代的对象,而迭代器是用于实际执行迭代操作的对象。
示例代码
my_list = [1, 2, 3]
# 获取迭代器
my_iterator = iter(my_list)
# 使用 next() 函数获取下一个元素
print(next(my_iterator))  # 输出 1
print(next(my_iterator))  # 输出 2
print(next(my_iterator))  # 输出 3
在上述代码中,iter() 函数用于从可迭代对象 my_list 中获取迭代器,next() 函数用于获取迭代器的下一个元素。
总结
- 迭代操作是对一组元素逐个进行访问的过程。
 - 迭代器是实现了 
__iter__()和__next__()方法的对象,用于实际执行迭代操作。 - 可迭代对象是实现了 
__iter__()方法的对象,它可以返回一个迭代器。 借助迭代操作和迭代器,你能够高效且灵活地处理各种序列数据。 
			





