print ([[a,b,c] for a in range(0,x+1) for b in range(0,y+1) for c in range(0,z+1) if a + b + c != n ])
有人能向我解释一下这是如何打印下面提到的输出的吗
[[0, 0, 0], [0, 0, 1], [0, 1, 0], [1, 0, 0], [1, 1, 1]]
无法理解语法
>>> x=y=z=1
>>> n=2
>>> print ([[a,b,c] for a in range(0,x+1) for b in range(0,y+1) for c in range(0,z+1) if a + b + c != n ])
[[0, 0, 0], [0, 0, 1], [0, 1, 0], [1, 0, 0], [1, 1, 1]]
如果x、y、z都设置为1,n设置为2,这将只打印元素总和不为2的列表。
因此,总和为2的列表[0,1,1], [1,0,1], [1,1,0]
不会出现在输出中。