如何从 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)