享受每一天,Just Enjoy !

0%

Python基础进阶 Zero to Hero生成器 (一)

1.生成器
  • Generator是一个用于创建迭代器的简单而强大的工具。 它们的写法类似标准的函数

    2.创建生成器的两中方法
    (一)yield 编写生成器函数,函数的返回值就是生成器
  • 承接上文迭代器,还是用游戏中的英雄技能举例子

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #!/usr/bin/python

    def hero(*skills):
    print('英雄的释放技能分别如下')
    for release_skill in skills:
    yield release_skill


    skill = hero('一骑当千','单刀赴会','青龙偃月','刀锋铁骑')
    for s in skill:
    print(s)
  • hero函数中传入英雄的1-4技能

  • 来看一下运行结果

    1
    2
    3
    4
    5
    6
    (yiluo) ➜  Code python hero.py
    英雄的释放技能分别如下
    一骑当千
    单刀赴会
    青龙偃月
    刀锋铁骑
  • 这样使用比迭代器的好处是,生成器不会像迭代器放在内存中,是用户传入数值动态生成的

    (二)生成器表达式
  • 另一种创建生成器的方式就是通过表达式

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    (yiluo) ➜  Code python3
    Python 3.7.5 (default, Nov 29 2019, 14:32:46)
    [Clang 9.0.0 (clang-900.0.39.2)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> s = (x+x for x in range(0,4))
    >>> s
    <generator object <genexpr> at 0x1058537d0>
    >>> for x in s:
    ... print(x)
    ...
    0
    2
    4
    6
  • s 就是生成器,然后遍历查看结果

    ……待续

    在这里插入图片描述

    享受每一天,Just Enjoy !

关注公众号获取更多内容