それらがすべてゼロの(i,j,k)
場合にのみ省略するには、次の条件を使用します。(i,j,k) != (0,0,0)
S = range(-3,3)
x = [(i,j,k)
for i in S
for j in S
for k in S
if ((i+j+k==0)
and (i,j,k) != (0,0,0))]
print(x)
版画
[(-3, 1, 2), (-3, 2, 1), (-2, 0, 2), (-2, 1, 1), (-2, 2, 0), (-1, -1, 2), (-1, 0, 1), (-1, 1, 0), (-1, 2, -1), (0, -2, 2), (0, -1, 1), (0, 1, -1), (0, 2, -2), (1, -3, 2), (1, -2, 1), (1, -1, 0), (1, 0, -1), (1, 1, -2), (1, 2, -3), (2, -3, 1), (2, -2, 0), (2, -1, -1), (2, 0,
-2), (2, 1, -3)]
元の状態の何が問題だったのかを理解するには、次のようにし(i!=0) and (j!=0) and (k!=0)
ます。
i=0
と の場合に何が起こるかを考えてみましょうj=1
:
| i != 0 | j != 0 | (i!=0) and (j!=0) | (i,j) != (0,0) |
| False | True | False | True |
(i!=0) and (j!=0)
はFalse
以来False and True
ですFalse
。対照的に、 と の両方がゼロでない限り、は常にです(i,j) != (0,0)
。True
i
j
追加(k!=0)
すると例がより複雑になりますが、考え方は同じです。