首页 > 编程 > Python > 正文

浅谈python迭代器

2020-01-04 16:29:00
字体:
来源:转载
供稿:网友

1、yield,将函数变为 generator (生成器)

例如:斐波那契数列

def fib(num):  a, b, c = 1, 0, 1      while a <= num:    yield c    b, c = c, b + c    a += 1for n in fib(10):  print(n, end=' ')# 1 1 2 3 5 8 13 21 34 55

2、Iterable

所有可以使用for循环的对象,统称为 Iterable (可迭代)

from collections import Iterable, Iteratorprint(isinstance(fib(10), Iterable))print(isinstance(range(10), Iterable))# True# True

3、Iterator

可以使用next() <__next__()> 函数调用并且不断返回下一个值的对象成为 Iterator (迭代器),表示一个惰性计算的序列。

list, dict, str是Iterable,不是Iterator:

from collections import Iteratorprint(isinstance(list(), Iterator))# False

但是可以通过iter()函数将其变为Iterator:

print(isinstance(iter(list()), Iterator))# True

总结

以上就是本文关于浅谈python迭代器的全部内容,希望对大家有所帮助。有什么问题可以随时留言,小编会及时回复大家的。感谢朋友们对本站的支持!


注:相关教程知识阅读请移步到python教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表