如何从列表中排除零

时间:2017-03-24 12:32:08

标签: python linear-programming gurobi

我正在python gurobi中编写一个线性程序,我试图创建一些约束,只包括两个列表的元素的乘法,但不包括零。更具体地说:A是仅包含正元素或零元素的列表,B是具有二进制变量的列表,其展示A列表中存在零的位置,例如: A = [1,2,0,3,0] B = [1,1,0,1,0]

我想添加一些约束,包括只包含A [x] * B [x]而不是零。

任何人都知道如何做到这一点?

3 个答案:

答案 0 :(得分:3)

这将完成这项工作:

import numpy as np
A=np.array([1,2,0,3,0])
B=np.array([1,1,0,1,0])
C=A[B>0]

Carray([1, 2, 3])

此外,与@ Jean-FrançoisFabre所建议的相似,你可以做到

import numpy as np
A=np.array([1,2,0,3,0])
C=A[A!=0]

答案 1 :(得分:0)

如果你只想从列表中删除0,你可以这样做:

A=[1,2,3,0,4,3,0,0,0,1]
C=[i for i in A if i!=0]

输出:

C=[1,2,3,4,3,1]

答案 2 :(得分:0)

这样可行。

A = [1, 2, 0, 3, 0]
B = [1, 1, 0, 1, 0]
mul = [a*b for a,b in zip(A,B) if a != 0 and b !=0]
print mul