Python 定义以向量作为内外键的字典字典
我必须定义一个巨大的稀疏矩阵,矩阵的行索引是一个大小为5的向量,矩阵的列索引也是一个大小为5的向量。更具体地说,要检索此矩阵中的元素,我需要知道两个向量:Python 定义以向量作为内外键的字典字典,python,dictionary,Python,Dictionary,我必须定义一个巨大的稀疏矩阵,矩阵的行索引是一个大小为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字典的每
(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\u 2
。其中,Dict_1
的键是行和行的向量
Dict_2的键是列的向量列键是向量。我非常感谢您的帮助和评论。为什么不让您的字典像这样:
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'
矩阵=defaultdict(dict)
>>>矩阵[(1,2,3,4)][(9,8,8,2)]=“信息”
>>>母体
defaultdict(,{(1,2,3,4):{(9,8,8,2):'info'})
>>>矩阵[(1,2,3,4)][(9,8,8,2)]
“信息”
为什么不让你的字典像这样:
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'
矩阵=defaultdict(dict)
>>>矩阵[(1,2,3,4)][(9,8,8,2)]=“信息”
>>>母体
defaultdict(,{(1,2,3,4):{(9,8,8,2):'info'})
>>>矩阵[(1,2,3,4)][(9,8,8,2)]
“信息”
什么是向量?你是说元组吗?什么是向量?你是说元组吗?谢谢你;这很有帮助。只是另一个简单的问题。是否可以用scipy的dok_矩阵做类似的事情?我正在处理稀疏矩阵,如果我能使用scipy的工具,这将有所帮助。我尝试了以下操作,但出现了错误:从集合导入默认dict from scipy.sparse import*from scipy import*S=dok_矩阵((9,9))对于范围(3)中的I:对于范围(3)中的j:对于范围(3)中的k:对于范围(3)中的l:S[(I,j)][(k,l)]=i+j+k+l谢谢你;这很有帮助。只是另一个简单的问题。是否可以用scipy的dok_矩阵做类似的事情?我正在处理稀疏矩阵,如果我能使用scipy的工具,这将有所帮助。我尝试了以下操作,但出现了错误:从集合导入默认dict from scipy.sparse import*from scipy import*S=dok_矩阵((9,9))对于范围(3)中的I:对于范围(3)中的j:对于范围(3)中的k:对于范围(3)中的l:S[(I,j)][(k,l)]=i+j+k+l