在for循环python中分配控制变量

时间:2015-05-31 22:51:04

标签: python

我有二进制向量X1到X6和Y1到Y6。我想找到X中每个矢量与Y中相应矢量之间的外积,例如(X1,Y1)的外积,(X2,Y2)的外积等。我正在使用numpy.outer(X1,Y1)。现在我想生成一个for循环来遍历所有这些,然后将它们的输出组合在一起。下面是我的代码我收到错误"语法错误:无法分配给运营商"当我删除等式LHS上w旁边的%d时,我得到另一个X未定义的错误。那么,任何人都可以帮我解决这个问题。

X1=[1, 0, 0, 1, 0]
X2=[0, 0, 0, 1, 1]
X3=[1, 0, 1, 0, 0]
X4=[1, 0, 0, 0, 1]
X5=[1, 1, 0, 0, 0]
X6=[0, 1, 0, 1, 0]

Y1=[[1], [0], [0], [0], [0]]
Y2=[[0], [0], [1], [0], [0]]
Y3=[[0], [1], [0], [0], [0]]
Y4=[[0], [0], [0], [1], [0]]
Y5=[[0], [0], [0], [0], [1]]
Y6=[[0], [0], [0], [1], [0]]

w=(5,5)
wt= np.zeros((w),dtype=np.integer)

for i in range (1, 6):
    w%d=np.outer(X%d,Y%d) % (i, i, i)
    wt=wt or w%d % i
print wt

由于

1 个答案:

答案 0 :(得分:1)

您可能希望将变量放在数组中:

X = [X1, X2, ..., X6]
Y = [Y1, Y2, ..., Y6]

那样:

W = [np.outer(x, y) for (x,y) in zip(X,Y)]
wt = reduce(lambda a,b: a or b,
            W,
            np.zeros((5,5),dtype=np.integer))