如何从 Python 中的二维数组中删除特定元素?
How to remove a specific element from a 2d array in Python?
我是 Python 的新手,现在我正在尝试创建一个名为 Pong
的游戏
一切看起来都很好,但不幸的是,一旦球碰到砖块,我就无法从 2D-Array /List 中删除特定元素。
这是我的代码:
class Brick:
size = 5
bricks = [[0] * size for i in range(size)]
def __init__(self, x, y):
self.x = x
self.y = y
def createBricks(self):
for x in range(self.size):
for y in range(self.size):
self.bricks[x][y] = Brick(x * 70, y * 40)
def draw(self):
for bricks in self.bricks:
for brick in bricks:
rect(brick.x, brick.y, 50, 20)
在下面的方法中,我想删除特定的元素:
#In my main class
def removeBrick():
for elem in brick.bricks:
for _brick in elem:
if ball.touchesBrick(_brick.x, _brick.y):
#Here I want to remove the element
我用remove()和del尝试了很多方法,但结果无法解决。
提前致谢。
使用 for 循环只是给你一个元素的副本(所以你不能直接修改它)。要解决这个问题,你应该使用 enumerate
class:
def removeBrick():
for elem in brick.bricks:
for i, _brick in enumerate(elem):
if ball.touchesBrick(_brick.x, _brick.y):
_brick.pop(i)
我是 Python 的新手,现在我正在尝试创建一个名为 Pong
的游戏一切看起来都很好,但不幸的是,一旦球碰到砖块,我就无法从 2D-Array /List 中删除特定元素。
这是我的代码:
class Brick:
size = 5
bricks = [[0] * size for i in range(size)]
def __init__(self, x, y):
self.x = x
self.y = y
def createBricks(self):
for x in range(self.size):
for y in range(self.size):
self.bricks[x][y] = Brick(x * 70, y * 40)
def draw(self):
for bricks in self.bricks:
for brick in bricks:
rect(brick.x, brick.y, 50, 20)
在下面的方法中,我想删除特定的元素:
#In my main class
def removeBrick():
for elem in brick.bricks:
for _brick in elem:
if ball.touchesBrick(_brick.x, _brick.y):
#Here I want to remove the element
我用remove()和del尝试了很多方法,但结果无法解决。
提前致谢。
使用 for 循环只是给你一个元素的副本(所以你不能直接修改它)。要解决这个问题,你应该使用 enumerate
class:
def removeBrick():
for elem in brick.bricks:
for i, _brick in enumerate(elem):
if ball.touchesBrick(_brick.x, _brick.y):
_brick.pop(i)