具有多个条件的嵌套列表
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
。
正在尝试像这样创建一个元组列表:
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
。