具有多个条件的嵌套列表

nested list with multiple conditions

正在尝试像这样创建一个元组列表:

 m=[-1,0,1]
 [(self._x+x,self._y) for x in m for y in m]

但是我想排除 x 和 y 都等于 0 的元组。我试过:

[(self._x+x,self._y) for x in m for y in m if x!=0 and y!=0]

但是没用。

谢谢。

m = [-1, 0, 1]

# so you want all combinations x and y out of m 
# but only if x and y are not both 0 at the same time?
[ (x, y) for x in m for y in m if not (x == 0 and y == 0) ]
## =>  [(-1, -1), (-1, 0), (-1, 1), (0, -1), (0, 1), (1, -1), (1, 0), (1, 1)]

您的代码的问题是 self. - 它只发生在 class 定义中。 self._x + x 是 for 循环中的 x 加上某个 self._x 值,无论它是什么。 self._y 不是 y。 你到底想要什么?您根本没有在代码中使用第二个 for 循环中的 y