如何在Python中从一个二维数组中删除一个特定的元素?

问题描述 投票:0回答:1

我是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

我试了很多方法 移除()脱离 但结果,我无法解决它。

先谢谢你了。

python processing
1个回答
1
投票

使用for循环只是给你一个元素的副本(所以你不能直接修改它)。要解决这个问题,你应该使用 enumerate 类。

def removeBrick():
    for elem in brick.bricks:
        for i, _brick in enumerate(elem):
            if ball.touchesBrick(_brick.x, _brick.y):
               _brick.pop(i)
© www.soinside.com 2019 - 2024. All rights reserved.