我需要能够在 python 中操作一个大型(10 ^ 7个节点)图。对应于每个节点/边的数据是最小的,例如,少量字符串。就 记忆和速度而言,最有效的方法是什么?
字典的结构更加灵活,实现起来也更加简单,但是我直觉地认为列表的列表会更快。List 选项还要求将数据与结构分开,而 dicts 则允许这样的操作:
graph[I][J]["Property"]="value"
你有什么建议?
是的,我应该更清楚我所说的效率是什么意思。在这个特殊的情况下,我指的是随机访问检索。
将数据加载到内存中并不是一个大问题。一劳永逸。耗时的部分是访问节点,这样我就可以提取信息并测量我感兴趣的指标。
我没有考虑过将每个节点作为一个类(所有节点的属性都是相同的) ,但是这似乎会增加额外的开销层?我希望有人能有一些直接的经验与类似的情况下,他们可以分享。毕竟,图是 CS 中最常见的抽象之一。