从具有给定长度和宽度的一维列表创建二维列表?
Create 2d list from 1d list with given length and width?
如何从具有给定行和列的一维列表创建二维列表?
鉴于:
sample_list=[5, 2, 3, 4, 1, 6, 1, 6, 7, 2, 3]
row=2
cols=4
应该return这个:
[[5, 2, 3, 4],[1, 6, 1, 6]]
我不需要其他数字 = 7、2、3。
我只想要一个包含用户提供的行和列的列表。
我的解决方案没有return我想要的,
我的解决方案:
def 1D_to_2D(sample_list, row, cols):
return [sample_list[i:i+cols] for i in range(0, len(sample_list), rows)]
returns:
[[5, 2, 3, 4], [3, 4, 1, 6], [1, 6, 1, 6], [1, 6, 7, 2], [7, 2, 3], [3]]
有人可以帮忙吗?
只需使用 range
的列表理解和 cols
的步骤(而不是您使用的 rows
)对列表进行切片,并使用外部切片限制项目的数量rows
:
sample_list=[5, 2, 3, 4, 1, 6, 1, 6, 7, 2, 3]
rows=2
cols=4
result = [sample_list[x:x+cols] for x in range(0,len(sample_list),cols)][:rows]
结果:
[[5, 2, 3, 4], [1, 6, 1, 6]]
def D_to_2D(sample_list, rows, cols):
return [sample_list[cols*i: cols*(i+1)] for i in range(rows)]
>>> D_to_2D([5, 2, 3, 4, 1, 6, 1, 6, 7, 2, 3], 2, 4)
[[5, 2, 3, 4], [1, 6, 1, 6]]
f = lambda x, row, cols: [x[i:i+cols] for i in range(0, cols*row, cols)]
f(x, row, cols)
如何从具有给定行和列的一维列表创建二维列表?
鉴于:
sample_list=[5, 2, 3, 4, 1, 6, 1, 6, 7, 2, 3]
row=2
cols=4
应该return这个:
[[5, 2, 3, 4],[1, 6, 1, 6]]
我不需要其他数字 = 7、2、3。 我只想要一个包含用户提供的行和列的列表。 我的解决方案没有return我想要的,
我的解决方案:
def 1D_to_2D(sample_list, row, cols):
return [sample_list[i:i+cols] for i in range(0, len(sample_list), rows)]
returns:
[[5, 2, 3, 4], [3, 4, 1, 6], [1, 6, 1, 6], [1, 6, 7, 2], [7, 2, 3], [3]]
有人可以帮忙吗?
只需使用 range
的列表理解和 cols
的步骤(而不是您使用的 rows
)对列表进行切片,并使用外部切片限制项目的数量rows
:
sample_list=[5, 2, 3, 4, 1, 6, 1, 6, 7, 2, 3]
rows=2
cols=4
result = [sample_list[x:x+cols] for x in range(0,len(sample_list),cols)][:rows]
结果:
[[5, 2, 3, 4], [1, 6, 1, 6]]
def D_to_2D(sample_list, rows, cols):
return [sample_list[cols*i: cols*(i+1)] for i in range(rows)]
>>> D_to_2D([5, 2, 3, 4, 1, 6, 1, 6, 7, 2, 3], 2, 4)
[[5, 2, 3, 4], [1, 6, 1, 6]]
f = lambda x, row, cols: [x[i:i+cols] for i in range(0, cols*row, cols)]
f(x, row, cols)