使用向量作为内部和外部键定义字典字典

时间:2013-07-08 01:58:18

标签: python dictionary

我必须定义一个巨大的稀疏矩阵,矩阵的行索引是一个大小为5的向量,矩阵的列索引也是一个大小为5的向量。更具体地说,要检索一个元素。这个矩阵我需要知道两个向量:

  1. 一个是行的向量,我们称之为(i,j,k,l,m)i=1,...,20,j=1,...,10, k=1,...,10, l=1,...,10, m=1,...,10.
  2. 的位置
  3. 一个用于列,我们称之为(n,o,p,q,r)。同样地, n=1,...,20, o=1,...,10, p=1,...,10, q=1,...,10, r=1,...,10

    我是 试图实现字典词典的想法在哪里 Dict_1字典的每个键引用另一个字典, 我们称之为Dict_2。其中Dict_1的键是和的向量 Dict_2是列的向量。

  4. 我非常感谢您在定义此词典时的任何提示或帮助。我调查What is the best way to implement nested dictionaries in Python?但不能 弄清楚如何将这个想法扩展到我的行和 列键是向量。我非常感谢任何帮助,评论。

1 个答案:

答案 0 :(得分:1)

为什么不让你的字典这样:

matrix = { (v1,v2):val}

例如:

>>> m = {((1,2,3,4),(9,8,8,2)):"info"}
>>> m[((1,2,3,4),(9,8,8,2))]
'info'

如果您需要以下设置: matrix = { v1: { v2:val }},您可以使用deafultdict,如此:

>>> matrix = defaultdict(dict)
>>> matrix[(1,2,3,4)][(9,8,8,2)] = "info"
>>> matrix
defaultdict(<type 'dict'>, {(1, 2, 3, 4): {(9, 8, 8, 2): 'info'}})
>>> matrix[(1,2,3,4)][(9,8,8,2)]
'info'