我有一个包含100个项目的列表。如何将其转换为20 * 5二维列表?我的代码:
ng test
答案 0 :(得分:0)
一些嵌套循环应该可以解决这个问题:
result = []
for i in range(m):
row = []
for j in range(n):
row.append(l[i * n + j])
result.append(row)
答案 1 :(得分:0)
l = [1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4]
n = 5
使用列表理解
subLists = [l[i:i+n] for i in range(0, len(l), n)]
使用生成器
def make_sublists_generator(l, sublists_size):
for i in range(0, len(l), sublists_size):
yield l[i : i + sublists_size]
subLists = list(make_sublists_generator(l, n))
两者都输出相同的
print(str(subLists))
[[1, 1, 1, 1, 1], [2, 2, 2, 2, 2], [3, 3, 3, 3, 3], [4, 4, 4, 4, 4]]
注意强>
如果列表的大小不是n,它仍然有效,最后一个子列表会更短。如果要引发异常,您可能需要在len(l)%sublists_size
函数的开头检查make_sublists