2017-02-24 37 views
-1

我試圖創建一個保存這個確切的格式列表:[[2],[2],[2],[2],[2],[2],[2],[2],[2],[2]]如何使用所有相同的值創建2d列表,但可以更改多個元素? (蟒蛇)

list[3][0] = 9被調用時,列表變得[[2],[9],[2],[9],[2],[9],[2],[9],[2],[9]]

如何在第一時間將創建列表讓我只用一行來改變這些元素?

+1

究竟什麼是你想用列表做[3] [0] = [0]? – warl0ck

+0

創建二維列表d = [[2] for x in xrange(n)]'其中n是要創建的列表項的長度 – warl0ck

+0

我想說的是list [3] [0] = 9,我的錯。編輯。 @ warl0ck – Epsilonian

回答

0

請檢查輸出,它應該給

[[2], [2], [2], [9], [2], [2], [2], [2], [2], [2]] 

作爲輸出。

+0

編輯我的原始問題關於那個,我的意思是說列表[3] [0] = 9 – Epsilonian

1
>>> L = [[2], [2]] * 5 
>>> L 
[[2], [2], [2], [2], [2], [2], [2], [2], [2], [2]] 
>>> L[3][0] = 9 
>>> L 
[[2], [9], [2], [9], [2], [9], [2], [9], [2], [9]] 

這是因爲相同的兩列被一遍又一遍地重複

>>> [id(x) for x in L] 
[140053788793352, 140053788793288, 140053788793352, 140053788793288, 140053788793352, 140053788793288, 140053788793352, 140053788793288, 140053788793352, 140053788793288] 
+0

啊,我明白了!這個問題現在非常有意義,謝謝約翰! – Epsilonian

相關問題