所以我想基于宽度和高度在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