我最近遇到了一些 Java 代码,它们只是将一些字符串放入 Java TreeSet,为它实现了一个基于距离的比较器,然后在日落时分计算给定分数以解决给定问题。
我的问题,
是否有可用于 Python 的等效数据结构?
- Java 树集看起来基本上是一个有序字典,可以使用某种比较器来实现这种排序。
我看到有一个PEP for Py3K for an OrderedDict,但我使用的是 2.6.x。那里有一堆有序的 dict 实现 - 特别是可以推荐的任何人?
PS,只是补充一下——我可能会导入 DictMixin 或 UserDict 并实现我自己的排序/排序字典,并通过比较器函数实现它——但这似乎有点矫枉过正。
谢谢。
更新。感谢您的回答。详细说明一下,假设我有一个比较函数,它的定义如下(给定一个特定的值 ln),
def mycmp(x1, y1, ln):
a = abs(x1-ln)
b = abs(y1-ln)
if a<b:
return -1
elif a>b:
return 1
else:
return 0
我有点不确定如何将其集成到此处给出的有序 dict 链接中给出的排序中......
就像是,
OrderedDict(sorted(d.items(), cmp=mycmp(len)))
欢迎提出想法。