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



我得到了伪代码:

    for i= 1 to 3
        for j = 1 to 3
            board [i] [j] = 0
        next j
    next i

我该如何在python中创建它?

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

如果您真的想使用for-循环:

>>> 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]]

但Python让你更容易:

>>> board = [[0]*3 for _ in range(3)]
>>> board
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
arr=[[0,0,0] for i in range(3)] # create a list with 3 sublists containing [0,0,0]
arr
Out[1]: [[0, 0, 0], [0, 0, 0], [0, 0, 0]]

如果你想要一个包含4个0的5个子列表的列表:

In [29]: arr=[[0,0,0,0] for i in range(5)]
In [30]: arr
Out[30]: 
[[0, 0, 0, 0],
 [0, 0, 0, 0],
 [0, 0, 0, 0],
 [0, 0, 0, 0],
 [0, 0, 0, 0]]

范围指定需要多少个子列表,范围从0开始,因此范围4为0,1,2,3,4。给你五个[0,0,0,0]

使用列表理解与相同

arr=[]
for i in range(5):
    arr.append([0,0,0,0])
arr
[[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]]

如果您想要更接近您的伪代码:

board = []
for i in range(3):
    board.append([])
    for j in range(3):
        board[i].append(0)

numpy有这样的功能:

numpy.zeros((3,3))

您可以使用给定的伪代码样式,也可以简单地使用python一行

chess_board=[[x]*3表示_在范围(y(内]->列出理解

或者可以使用java等其他语言的纯循环样式。我更喜欢那种衬里,因为它看起来更漂亮、更干净。

相关内容

  • 没有找到相关文章

最新更新