首页 飞桨领航团 帖子详情
AI达人创造营-About 生成器
收藏
快速回复
飞桨领航团 文章AI达人创造营 284 0
AI达人创造营-About 生成器
收藏
快速回复
飞桨领航团 文章AI达人创造营 284 0

在学习飞桨领航团AI达人养成营第二节Python编程基础内容时,关于生成器的内容有以下总结:
1.为什么有生成器?
列表生成式一次性将所有的数据调入内存,数据量小时这样做完全没有问题,但是当数据量达到成百上千万以上,
这样的做法可能会造成内存不够用或浪费内存的问题,生成器可以有效的解决这样的问题。
2.生成器是什么?
生成器一个python对象,是一种边循环边计算的机制。
3.生成器的特点:

1)节约内存
2)迭代到下一次的调用时,所使用的参数都是第一次所保留下的,即是说,在整个所有函数调用的参数都是第一次所调用时保留的,而不是新创建的

4.创建生成器
方法一:将列表生成式的[]换成()
例:L = [x**2 for i in range(10)]
方法二:用函数实现

通过对生成器的学习,我自己写了两个小例子。
举例1:输出小于max_num的偶数或奇数
实现代码:

# 1.输出小于max_num的偶数或奇数
def odd(max_num):
    i = 1
    while i < max_num:
        if i % 2 == 0:  # if % 2 == 1可生成奇数
            yield i
        i += 1

g = odd(10)
for n in g:
    print(n)

举例2:输出小于max_num的偶数或奇数
实现代码:

# 2.输出任意个偶数或奇数
def odd():
    i = 2
    while i:
        if i % 2 == 0:  # if % 2 == 1可生成奇数
            yield i
        i += 1
g = odd()
for i in range(100):
    print(next(g))



0
收藏
回复
在@后输入用户全名并按空格结束,可艾特全站任一用户