Python 多维列表/数组问题请教

2021-12-25 22:15:09 +08:00
 zxCoder

python

有一个多维列表,和一些下标的列表,比如[[0,0,1],[1,2,0],[0,1,3],...]

维度不确定,想取出这个多维列表里对应这些下标的值,或者给这个多维列表对应下标赋值

能做到吗

895 次点击
所在节点    问与答
4 条回复
ruxuan1306
2021-12-25 23:06:59 +08:00
如果维度规整,直接转成 numpy 数组下标操作即可。
所谓规整,就是所有元素在某个维度不能参差不齐。
zxCoder
2021-12-26 08:37:59 +08:00
@ruxuan1306 在想有没有原生 python 的写法,暴力也行
ruxuan1306
2021-12-27 19:01:02 +08:00
```Python
import numpy as np

nparr = np.arange(24).reshape(3,4,2)
arr = nparr.tolist()

print(nparr[0,2,1])
nparr[0,2,1] = 100
print(nparr)

print(arr[0][2][1])
arr[0][2][1] = 100
print(arr)
```

```
5
[[[ 0 1]
[ 2 3]
[ 4 100]
[ 6 7]]

[[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]]

[[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]]]
5
[[[0, 1], [2, 3], [4, 100], [6, 7]], [[8, 9], [10, 11], [12, 13], [14, 15]], [[16, 17], [18, 19], [20, 21], [22, 23]]]
```
ruxuan1306
2021-12-27 19:03:52 +08:00
可以用原生等价实现,只不过 numpy 的占内存更小。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/824438

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX