Недавно я наткнулся на некоторый Java-код, который просто поместил некоторые строки в Java TreeSet, внедрил для него компаратор расстояния, а затем сделал свой веселый путь в закат, чтобы вычислить данный балл, чтобы решить данную проблему.
Мои вопросы,
-
Существует ли эквивалентная структура данных для Python?
- Дерево деревьев Java выглядит в основном как упорядоченный словарь, который может использовать какой-то компаратор для достижения этого упорядочения.
-
Я вижу там PEP для Py3K для OrderedDict, но я использую 2.6.x. Есть куча упорядоченных реализаций dict там - кто-нибудь, в частности, что можно рекомендовать?
PS, просто добавить - я мог бы, возможно, импортировать DictMixin или UserDict и реализовать свой собственный отсортированный/упорядоченный словарь, и сделать это через функцию компаратора, но это, кажется, слишком велико.
Спасибо.
Update. Спасибо за ответы. Чтобы разработать немного, скажем, у меня есть функция сравнения, определенная как (с учетом определенного значения 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
Я немного не уверен, как бы интегрировать это в упорядочение, указанное в упорядоченной ссылке приведенной здесь...
Что-то вроде,
OrderedDict(sorted(d.items(), cmp=mycmp(len)))
Идеи приветствуются.