【发布时间】:2021-06-06 15:48:24
【问题描述】:
假设我有以下列表foo 想要排序:
foo = [63,64,65]
为了通知排序,我有以下“依赖项”字典,如果 value 在 key 的列表中,则该 value 的排序必须高于列表foo 中的key:
bar = {
63: [64, 65],
64: [65]
}
例如,查看列表foo,我们在索引0 处看到值63。但是,检查字典bar,我们看到63 具有“依赖关系”64 和65,因此这两个值在foo 中的排序必须更高。
我相信我可以拼凑出一些东西,但我对解决这种排序场景的算法和/或其他方法很感兴趣。谢谢。
更新: 许多 cmets 指出这可能是图形/拓扑问题。谢谢你,因为这实际上是对图中的节点进行排序的更大任务的一部分。
更新: 建议查看toposort,这正好符合要求。
【问题讨论】:
-
这听起来确实像一个图形问题
-
这听起来像是拓扑排序 - 你研究过吗?
-
另见pypi.org/project/toposort,一个为你处理拓扑排序的现成项目。
-
请注意,从技术上讲,
64不是键63的值。 包含64的列表是键63的值。