对于非序列类型的循环

问题描述

我知道for循环需要一个序列来对其进行迭代。但为什么。与其他语言一样,for循环可使用整数,浮点等普通值。在python中,为什么不能采用序列数据类型以外的其他值?

解决方法

For循环可能会让您感到困惑。

但是,如果您看到此概念的实现,

iter_obj=iter(iterable)
while True:
    try:
        item=next(iter_obj)
        print(item)
    except StopIteration:
        break

它实现了迭代器的概念。因此,它需要一个序列

,

For循环可与实现Iterable协议的任何对象一起使用。

简而言之,Iterable是实现__iter__并允许您逐个传递项目的任何对象。

有关可迭代的更多信息,请参见Python Glossary