zxCoder
V2EX  ›  问与答

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

  •  
  •   zxCoder · Dec 25, 2021 · 1281 views
    This topic created in 1646 days ago, the information mentioned may be changed or developed.

    python

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

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

    能做到吗

    4 replies    2021-12-27 19:03:52 +08:00
    ruxuan1306
        1
    ruxuan1306  
       Dec 25, 2021
    如果维度规整,直接转成 numpy 数组下标操作即可。
    所谓规整,就是所有元素在某个维度不能参差不齐。
    zxCoder
        2
    zxCoder  
    OP
       Dec 26, 2021
    @ruxuan1306 在想有没有原生 python 的写法,暴力也行
    ruxuan1306
        3
    ruxuan1306  
       Dec 27, 2021
    ```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
        4
    ruxuan1306  
       Dec 27, 2021
    可以用原生等价实现,只不过 numpy 的占内存更小。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   869 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 19:26 · PVG 03:26 · LAX 12:26 · JFK 15:26
    ♥ Do have faith in what you're doing.