【发布时间】:2010-10-12 07:23:07
【问题描述】:
有人知道 Python 是否有与 Java 的 SortedSet 接口等效的接口吗?
这就是我要查找的内容:假设我有一个 foo 类型的对象,并且我知道如何比较两个 foo 类型的对象以查看 foo1 是“大于”还是“小于”比“foo2。我想要一种将foo 类型的许多对象存储在列表L 中的方法,这样每当我遍历列表L 时,我都会根据我定义的比较方法按顺序获取对象。
编辑:
我想我每次修改它时都可以使用字典或列表和sort(),但这是最好的方法吗?
【问题讨论】:
-
好点。最好的意思是“最有效”
-
Python 的排序效率惊人。您必须将其与集合和排序列表进行比较。
-
基本没有。你需要带上你自己的树。如果您只遍历列表一次,则可以使用答案中描述的 heapq。
-
基于
bisect模块的配方:code.activestate.com/recipes/577197-sortedcollection