不带numpy的多维列表切片

2024-04-25 18:08:14 发布

您现在位置:Python中文网/ 问答频道 /正文

尝试对维度为(3 X 3)的2D列表进行切片,结果得到(2 X 2)的4个子列表[没有numpy和其他可能的库]

lis = [[1,1,1],[2,2,2],[3,3,3]]
print(lis)

dex = list([])

for i in range(0,2):
    for j in range(0,2):
        dex.append( [ lis[i:i+2,j:j+2] ] )
#       print( lis[i:i+2,j:j+2] )

期望值:

 [ [[1,1][2,2]], [[1,1][2,2]], [[2,2][3,3]], [[2,2][3,3]] ]

获取:TypeError:列表索引必须是整数或片,而不是元组


Tags: innumpy列表for切片range整数list
1条回答
网友
1楼 · 发布于 2024-04-25 18:08:14

只要用列表理解就可以得到同样的效果。对于一个3D列表,你会有另一种理解。你知道吗

而不是[lis[i:i+2,j:j+2]]

使用[x[j:j+2] for x in lis[i:i+2]]

它的输出是[[[1, 1], [2, 2]], [[1, 1], [2, 2]], [[2, 2], [3, 3]], [[2, 2], [3, 3]]]

相关问题 更多 >

    热门问题