Algorithm 如何使这个稀疏矩阵和trie协同工作

Algorithm 如何使这个稀疏矩阵和trie协同工作,algorithm,data-structures,sparse-matrix,trie,Algorithm,Data Structures,Sparse Matrix,Trie,我有一个稀疏矩阵,已导出为以下格式: (1, 3) = 4 (0, 5) = 88 (6, 0) = 100 ... 字符串存储在Trie数据结构中。先前导出的稀疏矩阵中的数字对应于Trie上的查找结果 假设单词stackoverflow映射到数字“0”。我需要迭代导出的稀疏矩阵,其中第一个元素等于“0”,并找到最大值 例如: (0, 1) = 4 (0, 3) = 8 (0, 9) = 100 <-- highest value 0,9会赢 存储导出的稀疏矩阵的最佳实现是什么? 一般

我有一个稀疏矩阵,已导出为以下格式:

(1, 3) = 4
(0, 5) = 88
(6, 0) = 100
...
字符串存储在Trie数据结构中。先前导出的稀疏矩阵中的数字对应于Trie上的查找结果

假设单词stackoverflow映射到数字“0”。我需要迭代导出的稀疏矩阵,其中第一个元素等于“0”,并找到最大值

例如:

(0, 1) = 4
(0, 3) = 8
(0, 9) = 100 <-- highest value
0,9会赢

存储导出的稀疏矩阵的最佳实现是什么?
一般来说,处理此功能的最佳方法是什么?数据结构、算法?

如果没有内存或动态约束,最好的方法可能是将稀疏矩阵从第一个数字映射到按值排序的对,例如

matrix_map = {}  # empty map
for (first_number, second_number, value) in matrix_triples:
    if first_number not in matrix_map:
        matrix_map[first_number] = []  # empty list
    matrix_map[first_number].append((second_number, value))
for lst in matrix_map.values():
    lst.sort(key=itemgetter(1), reverse=True)  # sort by value descending
给定一个矩阵

(0, 1) = 4
(0, 3) = 8
(0, 5) = 88
(0, 9) = 100
(1, 3) = 4
(6, 0) = 100,
成品如下所示:

{0: [(9, 100), (5, 88), (3, 8), (1, 4)],
 1: [(3, 4)],
 6: [(0, 100)]}.

谢谢你的回答。请原谅我的无知,但您提供的代码片段是查找最高值还是仅存储最高值?因为我需要存储整个导出的稀疏矩阵。所以我最初的问题是什么是存储稀疏矩阵和查找的最佳数据结构。顺便说一句,你说的{}是指[]?我不是Python专家,但我不认为Python使用{}:再次感谢您的帮助和时间。@Chiron{}是Python地图。您可以存储一个三元组列表,而不仅仅是最高的三元组,最高的三元组在前面,甚至可以按值降序排列。请给出您的意思的文本表示形式好吗?这将有助于我形象化。谢谢。@Chiron我加了一个例子。你能解释一下你所说的缺乏记忆或动态限制是什么意思吗?我真的很喜欢向你学习: