python

Python 生成器

2019-02-17  本文已影响0人  亮哥007

为什么要用生成器?

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

创建生成器有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在数据处理另外被广泛使用,生成器功不可没

上一篇 下一篇

猜你喜欢

热点阅读