首页 > 解决方案 > 如何将列表转换为这样的二维列表 [[1, 2, 3][4, 5, 6][7, 8, 9]]

问题描述

我将 csv 文件中的数据添加到列表中。但现在是这样的列表构建:

[1、2、3、4、5、6、7、8、9]

如何像这样在 2D 列表中转换列表:

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

lcsv=[]
newldata=[]

for column
    newldata.append(
    for row in lcsv:
        newldata.append(lcsv[1*row][0])
        newldata.append(lcsv[1*row][1])
        newldata.append(lcsv[1*row][2])
    )

怎么了?

标签: pythonlistmatrix

解决方案


您可以将列表推导与range函数结合使用:

l = [1, 2, 3, 4, 5, 6, 7, 8, 9]
l = [l[i:i+3] for i in range(0, len(l), 3)]
>>> [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

range 函数生成 numbers [0, 6, 9, ..., len(l)],因此列表推导式中的语句l[i:i+3]会将子列表l[0:3], l[3:6], and l[6:9]放入一个新列表中。


推荐阅读