如何使用 for 循环编写递增数字的二维列表
How to write a 2D list with increasing numbers using a for loop
我可以使用内部具有相同值的 for 循环编写一个二维列表,例如:
list = [[0 for x in range(4)] for y in range(4)]
我得到了结果:
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
但是我怎样才能写出类似的东西来获得递增数字的结果呢?
输出应该是这样的:
[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15]]
谢谢!
你可以通过这个列表理解来实现:
L = [[x for x in range(y,y+4)] for y in range(0,16,4)]
您可以使用:
cols = 4
rows = 4
[[x+y*cols for x in range(cols)] for y in range(rows)]
或者,使用 numpy.arange
:
import numpy as np
rows = 3
cols = 5
np.arange(rows*cols).reshape((rows, cols)).tolist()
输出:
[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15]]
你可以这样实现:
l = [[x + 3*y +y for x in range(4)] for y in range(4)]
我可以使用内部具有相同值的 for 循环编写一个二维列表,例如:
list = [[0 for x in range(4)] for y in range(4)]
我得到了结果:
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
但是我怎样才能写出类似的东西来获得递增数字的结果呢?
输出应该是这样的:
[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15]]
谢谢!
你可以通过这个列表理解来实现:
L = [[x for x in range(y,y+4)] for y in range(0,16,4)]
您可以使用:
cols = 4
rows = 4
[[x+y*cols for x in range(cols)] for y in range(rows)]
或者,使用 numpy.arange
:
import numpy as np
rows = 3
cols = 5
np.arange(rows*cols).reshape((rows, cols)).tolist()
输出:
[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15]]
你可以这样实现:
l = [[x + 3*y +y for x in range(4)] for y in range(4)]