python - 为什么此列表以错误的顺序返回 x 和 y?

标签 python arrays list grid 2d

我基本上有一个用这个创建的二维网格数组:

def createRoom(self):
    self.room = [[0] * 8 for x in xrange(8)]
    for x in xrange(8):
        self.room[x][0] = 2
        for j in xrange(8):
            self.room[0][j] = 2
            for i in xrange(8):
                self.room[-1][x] = 2
                for n in xrange(8):
                    self.room[n][-1] = 2
    for x in xrange(6):
        self.room[1][x+1] = 1
    for x in xrange(1):
        self.room[2][x+6] = 1
    for x in xrange(1):
        self.room[3][x+6] = 2
    for x in xrange(1):
        self.room[4][x+6] = 2
    for x in xrange(1):
        self.room[3][x+5] = 1
    for x in xrange(1):
        self.room[4][x+5] = 1
    for x in xrange(1):
        self.room[5][x+6] = 1
    for x in xrange(6):
        self.room[6][x+1] = 1
    for x in xrange(5):
        self.room[x+1][1] = 1               

    return self.room

使用 PrettyPrinter 看起来像这样:

[   [2, 2, 2, 2, 2, 2, 2, 2],
    [2, 1, 1, 1, 1, 1, 1, 2],
    [2, 1, 0, 0, 0, 0, 1, 2],
    [2, 1, 0, 0, 0, 1, 2, 2],
    [2, 1, 0, 0, 0, 1, 2, 2],
    [2, 1, 0, 0, 0, 0, 1, 2],
    [2, 1, 1, 1, 1, 1, 1, 2],
    [2, 2, 2, 2, 2, 2, 2, 2]]

但是当我想要获取 self.room[6][3] 时,它返回 1 而不是 2。

除非我将顺序更改为 self.room[3][6],否则为什么会这样做?

最佳答案

这是你的“房间”。按照您的设置方式,它将是按行优先顺序从 0 开始的索引。

[[2, 2, 2, 2, 2, 2, 2, 2],
 [2, 1, 1, 1, 1, 1, 1, 2],
 [2, 1, 0, 0, 0, 0, 1, 2],
 [2, 1, 0, 0, 0, 1, 2, 2],   # <-- 4th row
 [2, 1, 0, 0, 0, 1, 2, 2],
 [2, 1, 0, 0, 0, 0, 1, 2],
 [2, 1, 1, 1, 1, 1, 1, 2],   # <-- 7th row
 [2, 2, 2, 2, 2, 2, 2, 2]]

room[6][3] 是第 7 行中的第 4 个元素,即 1。

room[3][6] 是第 4 行中的第 7 个元素,即 2。

希望这能解决问题。

关于python - 为什么此列表以错误的顺序返回 x 和 y?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9576027/

相关文章:

python - 在 pandas 的列之间复制值

javascript - 在 Javascript 中将两个两位数整数相加

c - 对字符串数组使用动态内存分配

list - Prolog中列表的条件解析

python - 页面完全加载后如何选择按钮?

Python - 将给定目录更改为上一级或下一级

C:二维数组比一维数组慢?

list - 键入要求非空列表的最佳方式是什么(不使用 Scalaz)?

python - pandas:根据列表和另一列条件替换逗号分隔列中的相应值

Python (pygame) : Get image color information?