所以我想基於寬度和高度在Python中生成嵌套列表。這是我迄今爲止:Python - 動態嵌套列表
width = 4
height = 5
row = [None]*width
map = [row]*height
現在,這顯然是不完全正確的。打印時它看起來不錯:
[[None, None, None, None],
[None, None, None, None],
[None, None, None, None],
[None, None, None, None],
[None, None, None, None]]
但試圖將一個值分配給一個位置,像這樣:
map[2][3] = 'foo'
我得到:
[[None, None, None, 'foo'],
[None, None, None, 'foo'],
[None, None, None, 'foo'],
[None, None, None, 'foo'],
[None, None, None, 'foo']]
顯然,這是因爲每個子表是真的只是引用相同的對象,行,所以改變它,全部改變它們。所以這是我最接近的!
我該如何動態生成一個嵌套列表?謝謝!
雖然不是完全相同的副本,請參閱:http://stackoverflow.com/questions/1605024/python-using-the-multiply-operator-to -create-copies-of-objects-in-lists – carl 2010-08-27 18:52:05
'map()'是一個內置函數,重寫它不是一個好主意。找到另一個名字,如果需要的話,你可以追加'_'。 – 2010-08-27 19:04:34