我是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
答案 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)
这会给你一个随机数。 至于那个数字周围的数字的变化,只需使用上面的数字,然后递增和减少该数字,得到它周围数字的索引。