热线电话:13121318867

登录
2018-12-03 阅读量: 792
Python的可迭代和迭代器是什么?

Iterable是一个可以迭代的对象。它传递给iter()方法时会生成一个迭代器。Iterator是一个对象,用于使用__next __()方法迭代可迭代对象。迭代器有 __next__() 方法,它返回对象的下一个项目。
请注意,每个迭代器也是可迭代的,但并非每个迭代都是迭代器。例如,列表是可迭代的,但列表不是迭代器。可以使用该函数从迭代中创建迭代器iter()。为了实现这一点,对象的类需要一个__iter__返回迭代器的__getitem__方法,或一个序列索引从0开始的方法。

for city in ["Berlin", "Vienna", "Zurich"]:

print(city)

print("\n")

for city in ("Python", "Perl", "Ruby"):

print(city)

print("\n")

for char in "Iteration is easy":

print(char, end = " ")

当执行for循环时,对于iter()对象的语句调用,它应该循环。如果此调用成功,则iter调用将返回定义方法的迭代器对象,__next__()该对象一次访问一个对象的元素。如果没有其他可用元素,该__next__()方法将引发StopIteration异常。一旦捕获到StopIteration异常,for循环就会终止。

让我们__next__()使用next()内置函数调用该方法。

# list of cities

cities = ["Berlin", "Vienna", "Zurich"]

# intialize the object

iterator_obj = iter(cities)

print(next(iterator_obj))

print(next(iterator_obj))

print(next(iterator_obj))

0.0000
1
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子