所以我有一个二维整数列表,我想分别将一个较小的二维列表分配到第一个列表中。我的意思是,如果第一个列表a是这样的:
[[2, 2, 2, 2]
,[2, 2, 2, 2]
,[2, 2, 2, 2]]
我想分配此列表
[[1,1,1]
,[1,1,1]] (actually [[1]*3]*2)
到第一个列表a的位置[0:2][1:4],那么它应该变成
[[2, 1, 1, 1]
,[2, 1, 1, 1]
,[2, 2, 2, 2]]
我目前正在使用这段代码
for i in range(0,2):
a[i][1:4]=[1]*3
,使用一维浅拷贝[?:?]列表赋值。
那么有没有办法获得子二维列表,例如 a[i:y][j:z] ?
非常感谢。
最佳答案
Python 列表无法做到这一点。列表基本上是围绕一维操作的。 NumPy不过,数组对各种多维操作都有很好的支持。使用数组,你可以这样做
a[:2, 1:] = 1
并将数字 1 分配给多维子数组中的所有位置。如果您正在进行大量数组操作,请检查一下。
关于python - 多维(子列表到列表)分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17848652/