Python生成器generator

☆首页☆ 论坛 Python学习记录 Python生成器generator

标签: 

正在查看 1 帖子:1-1 (共 1 个帖子)
  • 作者
    帖子
  • #2519
    羊毛客
    管理员

    1.不必创建完整的list,从而节省大量的空间。在Python中,一边循环一边计算的机制,称为生成器:generator。

    2.要创建一个generator,有很多种方法。第一种方法很简单,只要把一个列表生成式的[]改成(),就创建了一个generator:
    >>> L = [x * x for x in range(10)]
    >>> L
    [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
    >>> g = (x * x for x in range(10))
    >>> g
    <generator object <genexpr> at 0x1022ef630>

    3.不断调用next(g)实在是太变态了,正确的方法是使用for循环,因为生成器generator也是可迭代对象。

    4.定义generator的另一种方法。如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator。

正在查看 1 帖子:1-1 (共 1 个帖子)
  • 哎呀,回复话题必需登录。