从一系列唯一值

时间:2015-08-21 19:29:14

标签: python

我试图创建一个nxn 2D列表,其值从0开始到n

类似这样的事情

  

[1 2 3 4]

     

[5 6 7 8]

     

[9 10 11 12]

我尝试使用以下代码来执行此操作

    self.board = [[list(range(n*n) for i in range(self.n)] for num in range(self.n)]

但它用16个元素填充列表中的每个元素

我应该使用什么表达式来替换列表(范围(n * n))?

2 个答案:

答案 0 :(得分:1)

怎么样:

>>> n = 4
>>> [[j*n+i+1 for i in range(n)] for j in range(n)]
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]

答案 1 :(得分:1)

尝试:

 >>> N = 4
 >>> board = [[j for j in xrange(N*i+1,N*i+N+1)] for i in xrange(N)]
 [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]