Python 定义以向量作为内外键的字典字典

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字典的每

我必须定义一个巨大的稀疏矩阵,矩阵的行索引是一个大小为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\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