python中有二维字典吗?

Con*_*mer 5 python numpy

我正要创建一个像这样的矩阵:

\n\n
    33  12  23  42  11  32  43  22\n33  \xe2\x88\x92   1   1   1   0   0   1   1\n12  1   \xe2\x88\x92   1   1   0   0   1   1\n23  1   1   \xe2\x88\x92   1   1   1   0   0\n42  1   1   1   \xe2\x88\x92   1   1   0   0\n11  0   0   1   1   \xe2\x88\x92   1   1   1\n32  0   0   1   1   1   \xe2\x88\x92   1   1\n43  1   1   0   0   1   1   \xe2\x88\x92   1\n22  1   1   0   0   1   1   1   \xe2\x88\x92\n
Run Code Online (Sandbox Code Playgroud)\n\n

我想通过水平或垂直标题进行查询,所以我通过\xef\xbc\x9a创建了矩阵

\n\n
a = np.matrix('99 33    12  23  42  11  32  43 22;33    99  1   1   1   0   0   1   1;12    1   99  1   1   0   0   1   1;23    1   1   99  1   1   1   0   0;42    1   1   1   99  1   1   0   0;11    0   0   1   1   99  1   1   1;32    0   0   1   1   1   99  1   1;43    1   1   0   0   1   1   99  1;22    1   1   0   0   1   1   1   99')\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果我查询 a[23][11] = 1 我想要获得某些数据

\n\n

那么有没有一种方法可以创建一个 2D 字典,使得 a[23][11] = 1 呢?

\n\n

谢谢

\n

Mos*_*oye 3

您显然在要求 . 之外的东西numpy

Adefauldictdefault_factoryas给出了你想要的2D 字典dict的含义:

>>> from collections import defaultdict
>>> a = defaultdict(dict)
>>> a[23][11] = 1
>>> a[23]
{11: 1}
>>> a[23][11]
1
Run Code Online (Sandbox Code Playgroud)

  • @Condo_programmer 如果对您有帮助,请接受答案 (2认同)