欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

迭代

程序员文章站 2022-05-20 22:08:09
...

 

原始for循环代码:

def funky_for_loop(iterable,action_to_do):
    for item in iterable:
        action_to_do(item)

以下代码是将for循环转换为while循环来实现:

实现步骤:

1.从给定的可迭代对象中获取迭代器

2.反复从迭代器中获取下一个元素

3.如果我们成功获得下一个元素,则执行for循环的主体

4.如果我们在获取下一个元素时遇到StopIteration异常,那么就停止循环

def funky_for_loop(iterable,action_to_do):
    iterator = iter(iterable)
    done_looping = False
    while not done_looping:
        try:
            item = next(iterator)
        except StopIteration:
            done_looping = True
        else:
            action_to_do(item)

注意:迭代器是可迭代对象,但是它们没有可迭代对象所具有的属性;迭代器唯一有用的地方是将其传递给内置的next函数,或者对其进行循环遍历:

>>>next(iterator)
1
>>>list(iterator)
[2,3,5,7]

况且迭代器只可以遍历循环一次;

 

 

相关标签: 迭代