zoukankan      html  css  js  c++  java
  • 对生成器的理解

      具体还是要参考:廖雪峰——生成器

      要创建一个generator,有很多种方法。第一种方法很简单,只要把一个列表生成式的list[]改成(),就创建了一个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))# 注意 L和g的差异,L是普通的list,g是一种算法,即一种惰性列表,取一次值算一次,你不用对应的格式取值,他不产生结果.
    >>> g
    <generator object <genexpr> at 0x1022ef630>

      第二种方法——生成器函数:如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator:

    >>> f = fib(6)
    >>> f     #光是调用生成器函数是不会产生具体数值的,必须用next(f)或for 的迭代法去打印才产生结果
    <generator object fib at 0x104feaaa0>
  • 相关阅读:
    Codeforces_462_B
    Codeforces_460_B
    Codeforces_456_A
    2016.11.27
    Buy the Ticket{HDU1133}
    高精度模板
    盐水的故事[HDU1408]
    测试你是否和LTC水平一样高[HDU1407]
    完数[HDU1406]
    Air Raid[HDU1151]
  • 原文地址:https://www.cnblogs.com/Jie-Bian/p/11046726.html
Copyright © 2011-2022 走看看