我已经获得了伪代码:
for i= 1 to 3
for j = 1 to 3
board [i] [j] = 0
next j
next i
我如何在python中创建它?
(我们的想法是创建一个3乘3的数组,并使用for循环将所有元素设置为0)。
答案 0 :(得分:14)
如果你真的想使用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]]
答案 1 :(得分:2)
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]]
答案 2 :(得分:0)
numpy.zeros((3,3))
答案 3 :(得分:0)
如果你想要更接近你的伪代码的东西:
board = []
for i in range(3):
board.append([])
for j in range(3):
board[i].append(0)
答案 4 :(得分:0)
您可以使用给定的伪代码样式,或者只使用python one liner
chess_board = [[x] * 3 for _ in range(y)] - >列表理解
或者您可以使用其他语言(如java)的普通循环样式。我更喜欢一个衬垫,因为它看起来更好更清洁。