随机更改二维数组

时间:2015-11-10 09:05:57

标签: 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))

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

2 个答案:

答案 0 :(得分:1)

您可以编写逻辑来检查边缘情况,也可以按如下方式使用异常:

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

然后你可以通过调用上面的函数随机选择row / col索引并将它的邻居和它自己的值设置为'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 :(得分:0)

用于随机生成数字只需使用

from random import randrange
x=randrange(0,6)
print(x)

这会给你一个随机数。 至于那个数字周围的数字的变化,只需使用上面的数字,然后递增和减少该数字,得到它周围数字的索引。