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

2024-05-19 03:05:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了伪代码:

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

我如何用python创建这个?

(其思想是使用for循环创建一个3x3数组,所有元素都设置为0)。


Tags: to代码board元素for数组next思想
3条回答
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]]

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

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)

如果您真的想使用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]]

相关问题 更多 >

    热门问题