在Python中将一个一维列表按照给定的行长度转换成二维列表

4

有没有一种简单的方法将1D列表转换为给定行长度的2D列表?

假设我有这样一个列表:

myList =  [1, 2, 3, 4, 5, 6, 7, 8, 9]

我想将上面的列表转换成下面的3 x 3表格:
myList = [[1,2,3],[4,5,6],[7,8,9]]

我知道可以通过创建一个名为myList2的新二维列表,并使用两个嵌套的for循环将元素插入到MyList2中来实现此目的。就像这样:MyList2[x][y] = myList[i] i++

我认为应该有更好的方法来做到这一点(不使用外部库或模块)

谢谢!

1个回答

9
使用切片与列表推导式
>>> myList =  [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> n = 3
>>> [myList[i:i+n] for i in range(0, len(myList), n)]
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接