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]]
这就是所谓的共享引用。