如何将3个列表值与If条件进行比较

问题描述 投票:-2回答:2

这是我的清单

A = [32,33,34,35,36,37,38,39,40,41,42]
B = [0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0]
C = [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0]
D = [1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1]

这里,列表B中的值应为0,列表C中的值应为0,列表D中的值应为1如果是这样,则将其通过,否则将失败。如您所见,列表B索引2的值为1,因此失败,因为列表C索引1的值为1而不是0,列表D索引3,4的值为2而不是1。我已经为此编写了代码,但是打印了多次]

我要检查3个列表的相同索引值

like

B[0] = 0,B[1]=0
C[0] = 0,C[1]=1
D[0] = 1,D[1]=1

您可以在第一次迭代中看到正确的值,但是在第二次它在C中失败,因为第二个索引值是1而不是0。像这样,我想检查所有3个列表。

我的代码-:

comment = "Wrong Signal in "
for first1 in A:
idx_val = A.index(first1)

    if (B[idx_val] != 0):
        comment = comment + 'B' 

    if C[idx_val] != 0:
        comment = comment + 'C' 

    if D[idx_val] != 1:
        comment = comment + 'D' 
print comment

Output-'Wrong Signal in B,C,D,D,B

但是我期望这样的输出

Output- 'Wrong Signal in B,C,D

还有另一个示例,如果B列表的所有值均为零,并且C,D在任何索引中的值均错误,则应打印]

output -'Wrong Signal in C,D

先谢谢您

这是我的列表A = [32,33,34,35,36,37,38,39,40,41,42] B = [0,0,1,0,0,0,0,0, 1,0,0] C = [0,1,0,0,0,0,0,0,0,0,0] D = [1,1,1,2,2,1,1,1,1, 1,1,1]在此,在列表B中的值...

python string list if-statement
2个回答
0
投票

找到第一个实例后,您需要退出循环。因此,您必须检查0是否仅在一次内。您可以简单地问“如果B中为0”。然后您就可以退出了,因为您不想知道0在B中的次数。


0
投票

只需使用all谓词:

© www.soinside.com 2019 - 2024. All rights reserved.