python - 多维(子列表到列表)分配

标签 python multidimensional-array

所以我有一个二维整数列表,我想分别将一个较小的二维列表分配到第一个列表中。我的意思是,如果第一个列表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/

相关文章:

Javascript 检查多维数组是否存在键

arrays - 生成伪语言的 C 程序 - 全局 3D 数组太大(段错误)?

python - Numpy 和 Ndarray 的外积

python - 扩展python日志处理程序,得到 "Level not an integer or a valid string"

python - 如何在 Conv2d 中使用复杂类型?

c - 使用c中多维数组中的行的递归函数中的语法错误

python - 确定颜色是否在轮廓 OpenCV 内

python - 在 PlotWidget GUI 中运行实时 pyqtgraph

Javascript 使用索引对多维数组进行排序

c++ - 将二维数组传递给 C++ 中的函数