У меня проблема, решение которой я знаю, но я не понимаю , почему моя первая попытка не сработала. Это относительно простой 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
Однако я не понимаю, почему моя первая попытка не работает как положено ..
Ура