Модуль Python sortedcontainers *1001* предоставляет тип SortedDict , который поддерживает это несколькими способами.
SortedDict.irange возвращает итератор, который разрезает ключи отображения:
from sortedcontainers import SortedDict
values = SortedDict(enumerate(range(10)))
assert list(values.irange(5, 8)) == [5, 6, 7, 8
И SortedDicts также индексируются:
assert values.iloc[4] == 4
assert values.iloc[2:5] == [2, 3, 4]
assert values.index(7) == 7
Атрибут iloc
является прокси для эффективной нарезки или получения элементов по индексу. Метод index
работает противоположно.
Проект SortedContainers включает в себя тесты и расширенное тестирование. Тесты охватывают 100% проекта, а стрессовые тесты проводятся в течение нескольких часов перед каждым основным выпуском.