2015-11-10 39 views
-3

我是新來的蟒蛇,我試圖創建一個數組(不使用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

[這裏](https://docs.python.org/2/tutorial/datastructures.html)你可以檢查如何使用列表。 [這裏](https://docs.python.org/3.1/library/random.html#random.randint),你可以檢查如何得到一個隨機數......並且關於選中元素的1,試着找* n *元素索引與其鄰居索引之間的連接。 – makeMonday

回答

0

用於隨機產生一個數只是使用

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

這會給你一個隨機數。 以及圍繞該數字的數字變化只需使用上述數字,然後遞增和遞減該數字即可獲得數字的索引。

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 

然後你就可以隨意選擇行/列的索引,並將其鄰居和其自身的價值「 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)