Python 3.2.1: не могу индексировать фигуру, необходимо получить доступ к определенному прямоугольнику позже - PullRequest
1 голос
/ 20 ноября 2011

Я использую вложенный цикл for, чтобы нарисовать сетку из 10 рядов прямоугольников и 10 столбцов прямоугольников (всего 100):

gridTiles = []

for r in range(totalSpaces):
    for c in range(totalSpaces):
        tiles = Rectangle(Point(borderSet + r * spaceSize, borderSet + c * spaceSize), Point(borderSet + (r + 1) * spaceSize, borderSet + (c + 1) * spaceSize))
        tiles.setWidth(2)
        tiles.draw(board)
        gridTiles.append(tiles)

Я знаю, что Rectangle не поддерживает индексирование (как показано в сообщении TypeError, которое я получаю), но мне нужно иметь возможность получить доступ к одному конкретному прямоугольнику позже в моем коде.

Есть ли способ как-то индексировать каждый прямоугольник, чтобы я мог сделать что-то по линии gridTiles [3] [7] позже (хотя, конечно, так, как сейчас, это не допустят)? И, между прочим, в настоящее время я не знаю, что такое, как __something__, поэтому я не могу легко использовать любой метод, который делается таким образом.

1 Ответ

3 голосов
/ 20 ноября 2011

Сделать gridTiles иметь вложенные списки:

gridTiles = []

for r in range(totalSpaces):
    row = []

    for c in range(totalSpaces):
        tiles = Rectangle(Point(borderSet + r * spaceSize, borderSet + c * spaceSize), Point(borderSet + (r + 1) * spaceSize, borderSet + (c + 1) * spaceSize))
        tiles.setWidth(2)
        tiles.draw(board)

        row.append(tiles)
    gridTiles.append(row)

Теперь вы сможете индексировать, как хотите:

gridTiles[0][0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...