MENU

python中的迭代器、生成器和装饰器

• 2018 年 04 月 07 日 • 编程语言

python中的迭代器和生成器

python中的迭代和迭代器

for是迭代吗?

答案是是的,我们经常见到的for,如:

for each in range(10):
    print each

这也算是一个迭代操作。

我记得range会返回一个列表,而xrange会返回一个迭代器

另一个迭代器

他的名字叫iter,用法如下:

string = "0xPoker"
it = iter(string)
next(it) --> 0
next(it) --> x
.......... 

当没有数据可以进行迭代时会抛出异常,可以配合try-except-finally使用

python中的生成器(Geberators)

yield的使用

在python中有种方法类似于return但是又和return不同,同样是返回一个东西,但是他返回是在运行过程中返回顺便将运行的那个函数暂停,然后调用next方法(传入新的参数然后就可以继续原来的流程)

生成器推导式

e = (i for i in range(10))
next(e) --> 0
next(e) --> 1
for each in e:
    print each
--> 2
--> 3
..........

这就是生成器的简单运用。

同时生成列表我们可以lt = [i for i in range(10)]生成一个长度为10 的列表。

python的装饰器

这个坑先挖好吧(有点深,不好填。)

返回文章列表 文章二维码
本页链接的二维码
打赏二维码