如何在Python中初始化2D数组?

Oce*_*nce 5 python arrays pseudocode multidimensional-array

我得到了伪代码:

    for i= 1 to 3
        for j = 1 to 3
            board [i] [j] = 0
        next j
    next i
Run Code Online (Sandbox Code Playgroud)

我如何在python中创建它?

(我们的想法是使用for循环创建一个3乘3的数组,所有元素都设置为0).

ars*_*jii 14

如果你真的想使用for-loops:

>>> board = []
>>> for i in range(3):
...     board.append([])
...     for j in range(3):
...         board[i].append(0)
... 
>>> board
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
Run Code Online (Sandbox Code Playgroud)

但是Python让你更容易:

>>> board = [[0]*3 for _ in range(3)]
>>> board
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
Run Code Online (Sandbox Code Playgroud)

  • @MehulMohan不,因为每个子列表实际上都是同一个对象.尝试做`nums [0] [0] = 1`并看看`nums`变成了什么. (5认同)