2013-12-08 90 views
-1

我已經習慣了C語言編程:如果你想分配空間的二維數組,你只需要聲明它作爲創建列表的Python列表

INT A [20] [20];我不太習慣Python編程又

(我仍然在C mindstate)

我要聲明一個列表的列表中的這部分代碼和initalize每個元素無法比擬的。

class World: 
    def __init__(self): 
     grid = [[none]*20]*20 

由於某種原因,它看起來不正確。有人可以幫我嗎?

+1

而有效的代碼(當然,通過'none',我假設你的意思是'沒有'),我真的懷疑那就是你想要的。看看[這](http://stackoverflow.com/a/12791510/198633) – inspectorG4dget

+0

也應該使用'self.grid'? – Roberto

回答

3

grid = [[None]*20]*20 will give you a list of 20 sublists, each of which contains 20沒有。但是,所有的子列表都會引用內存中的同一個列表,所以更改一個列表會影響它們。

你最好不要做這樣的事情:

grid = [[None for _ in xrange(20)] for __ in xrange(20)] 

這會給你20個不同的子列表,每個都包含20 None小號

Further reading