在python中填充2D列表的边

2024-04-20 11:24:09 发布

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

我一直在用密码

BOARD = [[0 for i in range(GRIDWIDTH)] for j in range(GRIDWIDTH)]

为pygame项目的一部分创建二维“网格”。你知道吗

我想知道如何用一个不同的数字填充网格的边缘,所以我在网格的中心有所有的零,在边缘有一个。你知道吗

谢谢!你知道吗


Tags: 项目inboard网格密码forrange数字
2条回答
BOARD = [[1] * GRIDWIDTH] + [
     [1] + [0]*(GRIDWIDTH-2) + [1] for j in range(GRIDWIDTH-2)
   ] + [[1] * GRIDWIDTH]

我建议你在这里用numpy

>>> import numpy as np
>>> grid = np.zeros(shape=(10,10))
>>> grid[[0,-1],:] , grid[:,[0,-1]] = 1, 1
>>> grid
array([[ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.],
       [ 1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.],
       [ 1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.],
       [ 1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.],
       [ 1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.],
       [ 1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.],
       [ 1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.],
       [ 1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.],
       [ 1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.],
       [ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.]])
>>> 

相关问题 更多 >