假設我具有9項, 一個的列表我想通過3項轉換1-d列表到2-d列表在Python
從[1,2將其轉化成的3列表,3,4,5,6,7,8,9] - > [[1,2,3],[4,5,6],[7,8,9]]
這是代碼:
def main():
L = range(1,10)
twoD= [[0]*3]*3 #creates [[0,0,0],[0,0,0],[0,0,0]]
c = 0
for i in range(3):
for j in range(3):
twoD[i][j] = L[c]
c+=1
由於某種原因,這個返回
twoD = [[7, 8, 9], [7, 8, 9], [7, 8, 9]]
我不知道爲什麼,是什麼讓它做到這一點?
另見http://stackoverflow.com/questions/312443/how-do-you-split-a-list-into-大小均勻的蟒蛇 – matsjoyce 2014-10-29 17:35:59
原因:[列表的Python列表,更改反映在子列表意外](http://stackoverflow.com/questions/240178/unexpected-feature-in-a-python-list-of -lists) – 2014-10-29 17:36:43
哦,哇,從來沒有想過這個!謝謝指出, – jean 2014-10-29 17:37:56