首页 > 编程语言 > 详细

Python generator 类型

时间:2019-04-02 17:43:10      阅读:165      评论:0      收藏:0      [点我收藏+]

场景:

使用gurobi求解优化问题时,遇到quicksum()函数用法如下:

quicksum(mu[i] for i in range(n))

读着很流畅而且好像并没什么问题欸,但

mu[i] for i in range(n)

返回的又是什么?

 

看了下quicksum()函数的介绍:

def quicksum(p_list): # real signature unknown; restored from __doc__
    """
    ROUTINE:
        quicksum(list)
    
      PURPOSE:
        A quicker version of the Python built-in ‘sum‘ function for building
        Gurobi expressions.
    
      ARGUMENTS:
        list: A list of terms.
    
      RETURN VALUE:
        An expression that represents the sum of the input arguments.
    
      EXAMPLE:
        expr = quicksum([x, y, z])
        expr = quicksum([1.0, 2*y, 3*z*z])
    """
    pass

所以,上述代码返回的是个list?

 

python console中试了下:

x = [1,2,3]
print (x[i] for i in range(2))
<generator object <genexpr> at 0x000000000449A750>

并不是list欸,是个generator object。

难道说generator object可以赋值给list变量?

 

查了下generator的相关文章(其中的yeild是关键 ,参考yeild介绍)

 

然后是generator和list~迭代器的关系

Python关键字yield详解以及Iterable 和Iterator区别

 

Python generator 类型

原文:https://www.cnblogs.com/peanutk/p/10643797.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!