美文网首页
python的高级特性-生成器

python的高级特性-生成器

作者: 我愿是你的左右手 | 来源:发表于2017-07-24 18:43 被阅读0次

一、描述
生成器(generator)是为了解决列表生成式占用内存的缺陷,只存储列表的生成算法。我们可以根据需要取列表的值,而不是像列表生成式一样全部存在内存当中。
二、用法
1)生成
只需要把列表生成式的 [] 换成()

In [17]: [x*2 for x in range(0,10)]
Out[17]: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

In [18]: (x*2 for x in range(0,10))
Out[18]: <generator object <genexpr> at 0x1026db468>

我们可以看到 生成器不会直接显示出成员
2)访问成员
a).next()

In [19]: G = (x*2 for x in range(0,10))
In [20]: next(G)
Out[20]: 0
In [21]: next(G)
Out[21]: 2
In [22]: next(G)
Out[22]: 4
In [23]: next(G)

这种方法在实际中是不常用的,太麻烦
b) 迭代

In [30]: G = (x*2 for x in range(0,10))
In [31]: for i in G:
...:     print(i)
...:
0
2
4
6
8
10
12
14
16
18

相关文章

网友评论

      本文标题:python的高级特性-生成器

      本文链接:https://www.haomeiwen.com/subject/agnbkxtx.html