Почему в стандартной библиотеке Python отсутствует тип данных max heap? - PullRequest
2 голосов
/ 14 апреля 2019

Я прочитал тему Что я использую для реализации max-heap в Python? , которую на сегодняшний день просматривали более 74 тыс. Раз (это означает, что многие сталкивались с одной и той же проблемой) и Мне было интересно, в чем причина того, что в стандартной библиотеке Python не реализован тип данных max heap? Отрицание или инвертирование значений и сохранение их в минимальной куче кажется мне очень уродливым и приводит к ненужным накладным расходам (нам нужно позаботиться о том, чтобы применить преобразование дважды).

Редактировать: Как указал @Boris, эта проблема уже была поднята здесь и отклонена. Вот оправдание Раймона Хеттингера:

Извините, Джеймс, мы не наращиваем API без достаточной доказанной необходимости; в противном случае мы получим разрастание API. Люди с реальными вариантами использования не запрашивали поведение (и случайный разовый получал, отрицая числовой аргумент). Вот почему функции maxheap были преднамеренно закрыты.

FWIW, этот модуль очень старый, и основные функции уже давно зарекомендовали себя как достаточные для соответствия их случаям использования (например, использование в цикле событий для эффективного выбора следующего запланированного события).

...