我必须定义一个巨大的稀疏矩阵,矩阵的行索引是一个大小为5的向量,矩阵的列索引也是一个大小为5的向量。更具体地说,要检索一个元素。这个矩阵我需要知道两个向量:
(i,j,k,l,m)
。 i=1,...,20,j=1,...,10, k=1,...,10, l=1,...,10, m=1,...,10.
一个用于列,我们称之为(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
的键是列的向量。 我非常感谢您在定义此词典时的任何提示或帮助。我调查What is the best way to implement nested dictionaries in Python?但不能 弄清楚如何将这个想法扩展到我的行和 列键是向量。我非常感谢任何帮助,评论。
答案 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'