Иногда имеет смысл иметь словарь с ключом. В C++ это часто реализуется с красно-черным деревом. Но любое самобалансирующееся двоичное дерево поиска будет делать (fwiw, Knuth особенно ясен по этому вопросу). Лучшим решением, которое я смог придумать до сих пор, является принятие R. McGraw's AVL-tree type и создание класса-оболочки, который в основном реализует интерфейс карты STL (также рассчитывая на удобное упорядочение пар (двух элементов кортежей) в Python). Такой кортеж в основном соответствует std :: map :: value_type.Mapping std :: map to Python
Да, есть модуль Bisect Python, и хотя это логарифмически во время вставки так же, как самобалансирующиеся двоичные деревья логарифмичны во время вставки (справа?), Честно говоря, я просто хочу объект. Вызывается OrderedDict или что-то (и нет, Python 3.1 OrderedDict не подходит - это для заказа «вставки-времени» - и, откровенно говоря, то, что порядок ввода-времени имеет отношение к заказу, не совсем очевидно).
Примечание. Словарь, упорядоченный по ключевым словам, очень полезен во многих отраслях промышленности (например, в финансах, например, для отслеживания ценных книг данных, которые являются в основном упорядоченными словарями цены -> количества, агрегированной информации о заказе и т. Д. .).
Если у кого-то есть другие идеи, это здорово. Все, что я знаю, я только что получил в пять миллионов раз умнее ответы Алекса Мартелли. Поэтому я подумал, что спрошу.
спасибо всем! у меня нет достаточного количества очков или чего-то, что бы поддержать всех, но я считаю, что все комментарии очень полезны. – 2009-09-29 14:19:21