“如果a = b elif a!= b”不起作用

时间:2017-10-13 12:50:32

标签: python arrays python-2.7 if-statement

我有一个由Nbin列表组成的表(命名表),每个列都包含Nbin元素。其中一些元素是(长)数组,所有其他元素都是单个0。 然后我做了这个简短的代码:

a=1
b=1
Nbin=3
for a in range(1,Nbin+1):
    for b in range(1,Nbin+1):
        if np.all(table[a][b]!=0) and np.all(a = b):
            s2=11 
            print a,'-',b,s2
        elif np.all(table[a][b]!=0) and np.all(a != b):
            s2=12 
            print a,'-',b,s2

基本上,我期望的输出(对于Nbin = 3)是:

1 - 1 11
1 - 2 12
1 - 3 12
2 - 2 11
2 - 3 12
3 - 3 11

但我得到的是:

1 - 1 11
1 - 2 11
1 - 3 11
2 - 2 11
2 - 3 11
3 - 3 11

我哪里做错了?

1 个答案:

答案 0 :(得分:0)

问题是,正如评论所指出的那样,你的第一个条件包含一个赋值,而不是一个比较。 a = ba的值设为b,而您想要的是a == b,表示这两个值是否相等。只要np.all(a = b)不为0,b将始终评估为真。

此外,对于此条件,您不需要np.alla == ba != b就足够了。

请注意,我不能保证您的代码现在可以按预期工作,因为您还没有说明table的值是什么。