Синтаксис оператора if в python с несколькими условиями - PullRequest
0 голосов
/ 18 июня 2020

У меня проблема, решение которой я знаю, но я не понимаю , почему моя первая попытка не сработала. Это относительно простой Q для нескольких условий для операторов if.

a = np.arange(2)
b = np.arange(5)
c = np.arange(6)

arr = np.array([[i,j,k] for i in a for j in b for k in c])

for row in arr:
    i,j,k = row
    if i != 1 | j != 4 | k != 1: continue
    print(i,j,k)

Я ожидаю, что пока одно из условий в операторе if оценивается как истинное, тогда for l oop должно продолжать следующая строка.

Вывод таков:

0 4 1
0 4 5
1 0 0
1 0 1
1 0 2
1 0 3
1 0 4
1 0 5
1 1 0
1 1 1
1 1 2
1 1 3
1 1 4
1 1 5
1 4 1
1 4 5

Например, самый первый вывод, 0! = 1, явно должен оценивать истину, поэтому он не должен печатать? Фактически, единственный отпечаток, который я ожидаю увидеть, должен быть (1,4,1).

Я знаю, что решение:

if (i,j,k) != (1,4,1): continue

Однако я не понимаю, почему моя первая попытка не работает как положено ..

Ура

...