2013-03-28 95 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)]