列出理解和生成器表达式

列出理解和生成器表达式

列表理解和生成器表达式是重要的Python功能,允许以简明的方式进行隐式枚举。要提供一个简单的示例,以下列表理解构建一个列表,其中包含从1到5的数字的正方形:

gurobi> [x * x在[1,2,3,4,5]] [1,4,9,16,25]
生成器表达式非常相似,但它用于生成一个迭代(可以迭代的东西)。例如,假设我们希望从1到5中计算数字的正方形之和。我们可以使用列表理解来构建列表,然后通过该列表。但是,使用生成器表达式更简单,更有效:
Gurobi> Sum(x * x在[1,2,3,4,5]中的x)55
每当方法接受时都可以使用发电机表达式迭代参数(可以迭代的东西)。例如,大多数接受a的python方法列表论证(最常见的类型迭代)还将接受发电机表达式。

请注意,有一个python例程来创建一个连续的整数列表:范围。上述通常会如下写入:

Gurobi> Sum(x * x为x范围内(1,6))
有关的详细信息范围可以找到功能这里

列表理解和生成表达式都可以包含多个为了条款,一个或多个如果条文。以下示例构建包含全部的元组列表X,Y.在哪里Xy既不小于4和X小于y

GuRobi> [(x,y)为x范围(4)的范围(4),如果x 请注意为了左右执行语句,可以在下一步中使用从一个的值,因此更有效地写下上面的方法是:
Gurobi> [(x,y)为x范围(4)范围内(x + 1,4)]

发电机表达式在我们的Python示例中广泛使用,主要在于addConst.方法。