Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在二维数组中随机更改值_Python_Arrays - Fatal编程技术网

Python 在二维数组中随机更改值

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

我是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))

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个元素索引及其相邻索引之间找到联系。