1. 任务

你想创建一个多维度的列表,且同时避免隐式的引用共享。

2. 解决方案

使用列表推导。举个例子,创建一个5*10的全为0的阵列:
multilist = [ [ 0 for col in range(5) ] for row in range(10) ]

3.讨论

当我们使用这种方式时,会遇到问题:
>>> multi=[[0]*5]*3
>>> print multi
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
>>> multi[0][0]='ops'
>>> print multi
[['ops', 0, 0, 0, 0], ['ops', 0, 0, 0, 0], ['ops', 0, 0, 0, 0]]
这就是所谓的共享引用。