[英]slicing of multi-dimensional list without numpy
嘗試對維度 = (3 X 3) 的二維列表進行切片,這會導致 (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:列表索引必須是整數或切片,而不是元組
只需使用列表推導即可獲得相同的效果。 對於 3D 列表,您將對此有另一種理解。
而不是[lis[i:i+2,j:j+2]]
使用[x[j:j+2] for x in lis[i:i+2]]
output 是[[[1, 1], [2, 2]], [[1, 1], [2, 2]], [[2, 2], [3, 3]], [[2, 2], [3, 3]]]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.