您的位置:首页 > 编程语言 > Python开发

Python 生成器

2019-05-12 22:23 197 查看

为什么要用生成器?

我们可以用列表存储数据,可是当数据特别大是建立一个列表存储数据就会很占用内存。所以,如果列表元素可以通过某种算法推算出来,那我们就可以在数据处理过程中不断的推算出新的后续元素,这样不必创建完整的数据列表可以节省内存空间

创建生成器有3种方法:

1.通过生成表达式
2.通过yield关键字
3.使用内置函数xrange()

1. 通过生成表达式

将列表生成表达式的[]改成(),就可以创建一个生成器

l = [x * x for x in range(2)]
print 'l type is ', type(l)

g = (x * x for x in range(2))
print 'g type is ', type(g)

程序打印结果

l type is  <type 'list'>
g type is  <type 'generator'>

2. 通过yield关键字

def generator(g):
n = 0
while n < g:
yield n
n += 1

g = generator(2)
print 'g type is ', type(g)
for i in g:
print i

程序打印结果

g type is  <type 'generator'>
0
1

###3. 通过xrange()函数

g = xrange(2)
print 'g type is ', type(g)
for i in g:
print i

程序打印结果

g type is  <type 'generator'>
0
1

总结

Python在数据处理另外被广泛使用,生成器功不可没

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: