您当前的位置: 首页 >  Python

北极的三哈

暂无认证

  • 7浏览

    0关注

    126博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【Python函数式编程①】——生成器(generator)

北极的三哈 发布时间:2022-06-20 23:41:12 ,浏览量:7

一、创建生成器

通过列表⽣成式,我们可以直接创建⼀个列表。

但是,受到内存限制,列表容量肯定是有限的。

⽽且,创建⼀个包含100万个元素的列表,不仅占⽤很⼤的存储空间,如果我们仅仅需要访问前⾯⼏个元素,那后⾯绝⼤多数元素占⽤的空间都⽩⽩浪费了。

所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?

# 列表生成式
lst = [i for i in range(10)]
print(lst)
print(type(lst))
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 
1.创建生成器的方式1 :生成式
g = (i for i in range(10))
print(g)
print(type(g))
#  g是一个生成器对象
#  g的类型是生成器

这样就不必创建完整的list,从⽽节省⼤量的空间。在Python中,这种⼀边循环⼀边计算的机制,称为⽣成器:generator。

创建 列表 和 生成器 的区别仅在于最外层的 [ ] 和 ( ) , lst 是⼀个列表,⽽ g 是⼀个⽣成器。我们可以直接打印出 lst 的每⼀个元素,但我们怎么打印出 g 的每⼀个元素呢?如果要⼀个⼀个打印出来,可以通过 next() 函数获得⽣成器

关注
打赏
1665905568
查看更多评论
立即登录/注册

微信扫码登录

0.0378s