我在一个项目中需要存储一个由两个字符串键索引的数字矩阵。矩阵不是交错的,也就是说,如果一个列键存在于任何一行,那么它应该存在于所有行。类似地,如果任何列都存在一个行键,那么它应该存在于所有列。在
表达这一点的明显方法是使用关联数组的关联数组,但这既笨拙又低效,而且它没有强制执行非锯齿属性。是否有任何流行的编程语言提供了一个关联矩阵,要么内置在语言中,要么作为其标准库的一部分?如果是这样的话,它们是如何工作的,无论是在API还是在实现级别?我在这个项目中使用Python和D,但是其他语言中的示例仍然有用,因为我可以查看API并找出在Python或D中实现类似功能的最佳方法
在Python中,可以用两个字符串的元组为dict建立索引,例如
我不知道“enforce non jaggedness”对您意味着什么,但您可以使用defaultdict为未显式设置的条目返回默认值,或者使用已知值初始化dict:
^{pr2}$如果您想强制只允许已知集合中的键,那么我建议将dict子类化以添加验证。在
为什么不使用一个标准的矩阵,然后有两个字典-一个将行键转换为行索引,另一个将列键转换为列索引。你可以自己做一个结构,我觉得这样很容易。只需创建一个包含矩阵和两个字典的类,然后从那里开始。在
python的larry模块最近发布了。我相信它能满足你的需要。在
相关问题 更多 >
编程相关推荐