2013-03-28 96 views
-5

需要一種基於變量構建二維列表的快速方法。 這將是正確的輸出Python,製作二維列表

[[0,1,2], [3,4,5]] 

相反,輸出即時得到是...

[[0, 1, 2], [0, 1, 2]] 
+1

請給出你試過的東西 – jamylak 2013-03-28 03:46:39

+0

你確實已經申報了嗎?你的問題的要點是什麼 – 2013-03-28 03:47:46

回答

2

根據您的例子,一些建議

>>> zip(*[iter(range(10))]*3) 
[(0, 1, 2), (3, 4, 5), (6, 7, 8)] 

>>> [range(n,n+3) for n in range(1,10,3)] 
[[1, 2, 3], [4, 5, 6], [7, 8, 9]] 

>>> it = iter(range(10)) 
>>> [list(islice(it,3)) for _ in range(3)] 
[[0, 1, 2], [3, 4, 5], [6, 7, 8]] 
+0

你的第二個解決方案效果非常好。感謝m8。 – 2013-03-28 03:56:40

1

使用列表內涵做這個。用你想使用的任何填充字符替換第一個我。

l = [[i for i in range(width)] for j in range(height)]