Python 在二维数组中随机更改值
我是python新手,我正在尝试创建一个数组(不使用numpy),然后随机替换一些值。使用以下代码创建阵列:Python 在二维数组中随机更改值,python,arrays,Python,Arrays,我是python新手,我正在尝试创建一个数组(不使用numpy),然后随机替换一些值。使用以下代码创建阵列: array = [] for row in range(6): array.append([]) for column in range(6): array[row].append('0') def display(array): for row in array: print(" ".join(row))
array = []
for row in range(6):
array.append([])
for column in range(6):
array[row].append('0')
def display(array):
for row in array:
print(" ".join(row))
display(array)
此代码输出:
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
如何在此列表中随机选择一个元素并将其替换为1以及上面/下面和旁边的数字,如下所示:
0 0 0 0 0 0
0 0 1 0 0 0
0 1 1 1 0 0
0 0 1 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
对于随机生成的数字,只需使用
from random import randrange
x=randrange(0,6)
print(x)
这将给你一个随机数。
至于这个数字周围的数字的变化,只需使用上面的数字,然后增减这个数字,就可以得到它周围数字的索引 您可以编写逻辑来检查边缘情况,也可以使用异常,如下所示:
def node_and_neighbours(array, r, c, v):
elements = [(r - 1, c), (r, c - 1), (r,c), (r, c + 1), (r + 1, c)]
for (i, j) in elements:
try:
array[i][j] = v
except IndexError:
pass
然后,您可以随机选择行/列索引,并通过调用上述函数将其邻居和自身值设置为“1”
import random
r = random.randint(0, len(array) - 1)
c = random.randint(0, len(array[r]) - 1)
node_and_neighbours(array, r, c, '1')
display(array)
您可以检查如何使用列表。你可以检查如何得到一个随机数。。。关于所选元素的1,尝试在n个元素索引及其相邻索引之间找到联系。