随机迭代Python中的2D列表

Dar*_*one 3 python random loops list

我实现这一目标的第一次尝试导致:

def rand_Random(self):
    randomRangeI = range(self.gridWidth)
    shuffle(randomRangeI)
    randomRangeJ = range(self.gridHeight)
    shuffle(randomRangeJ)

    for i in randomRangeI:
        for j in randomRangeJ:
            if self.grid[i][j] != 'b':
                print i, j
                self.grid[i][j].colour = self.rand_Land_Picker()
Run Code Online (Sandbox Code Playgroud)

哪个问题一次只能通过一个内部列表:

[1] [1..X]

[2] [1..X]

我希望能够做的是完全随机迭代2d数组(没有重复).

任何人都有解决这个问题的方法吗?

编辑:感谢您的回复,看起来我在脑海中观看2D阵列的方式与大多数人不同!

小智 5

创建一个包含所有可能坐标对的数组,将其拖曳并正常迭代.

import random
coords = [(x,y) for x in range(self.gridWidth) for y in range(self.gridHeight)
random.shuffle(coords)
for i,j in coords:
    if self.grid[i][j] != 'b':
        print i, j
        self.grid[i][j].colour = self.rand_Land_Picker()
Run Code Online (Sandbox Code Playgroud)