Недавно я натолкнулся на некоторый Java-код, который просто поместил некоторые строки в Java TreeSet, реализовал на нем компаратор расстояния, а затем сделал свой веселый путь в закат, чтобы вычислить данный балл, чтобы решить данную проблему.эквивалент TreeSet Java в Python?
Мои вопросы,
существует эквивалентная структура данных для Python?
- Java treeet выглядит в основном как упорядоченный словарь, который может использовать какой-либо компаратор для достижения этого упорядочения.
У меня есть PEP for Py3K для OrderedDict, но я использую 2.6.x. Есть куча упорядоченных реализаций диктовки - кто-нибудь, в частности, может быть рекомендован?
PS, просто добавить - я мог вероятно импортировать DictMixin или UserDict и реализовать свой собственный отсортированный/упорядоченный словарь, и сделать это с помощью функции сравнения - но это, кажется излишним.
Спасибо.
Обновление. Спасибо за ответы. Чтобы разработать немного, позволяю сказать, что у меня есть функция сравнения Thats, определенная как, (данная конкретное значение п),
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 link given here...
Что-то подобное,
OrderedDict(sorted(d.items(), cmp=mycmp(len)))
Идеи будут приветствоваться.
Обратите внимание, что 'OrderedDict' не похож на Javas' TreeMap'. Здесь упорядочено означает, что элементы упорядочены по времени ввода. Это не то, что вы хотите. Вы в основном ищете набор, реализованный через двоичные деревья поиска. – Albert