Есть ли структура в Python, похожая на C ++ STL-карту?

Есть ли структура в Python которая поддерживает аналогичные операции с C++ STL map и сложностью операций, соответствует C++ STL map ?

6 Solutions collect form web for “Есть ли структура в Python, похожая на C ++ STL-карту?”

dict обычно достаточно близко – чего вы хотите, чтобы этого не делали?

Если ответ «обеспечить порядок», то что на самом деле неправильно for k in sorted(d.keys()) ? Может быть, использует слишком много памяти? Если вы делаете много упорядоченных обходов, чередующихся с вставками, тогда «ОК», точка взята, вам действительно нужно дерево.

dict – фактически хэш-таблица, а не b-дерево. Но тогда map не определена как b-дерево, поэтому она не позволяет вам делать такие вещи, как отсоединение поддеревьев в качестве новой map , она просто имеет те же сложности производительности. Все, о чём действительно нужно беспокоиться, – это то, что происходит, когда происходит большое количество столкновений хэшей, но довольно редко использовать Python в ситуациях, когда вам нужны жесткие гарантии производительности в худшем случае.

Я считаю, что стандартный тип python dict () будет делать трюк в большинстве случаев. Отличие от std :: map в C ++ заключается в том, что dict impedmented как хэш-карта, а карта C ++ – на основе дерева.

Словари Python [5.5] .

Вы изучали словари Python ?

Python SortedDict похож на C ++ STL-карту. Вы можете прочитать об этом здесь или здесь .

SortedDict – это контейнер пар ключ-значение, в котором порядок наложен на ключи в соответствии с их упорядоченным отношением друг к другу. Как и в случае с встроенным типом данных типа Python, SortedDict поддерживает быструю вставку, удаление и поиск по ключу.

Посмотрите на модуль bintrees (pip install bintrees). Этот пакет предоставляет двоичные-RedBlack- и AVL-деревья, написанные на Python и Cython / C.

  • Расчет MODBUS RTU CRC16
  • Извлечение unsigned char из массива numpy.uint8
  • Python - лучший / самый чистый способ определения постоянных списков или словарей
  • Связывание GSL (или другой библиотеки) статически в общей библиотеке
  • Обнаружение, если объект с одного изображения находится на другом изображении с помощью OpenCV
  • Передача функции C в функцию Python
  • Как загрузить C DLL из SXS в Python?
  • Что означает «Символ, не найденный / ожидаемый в: плоском пространстве имен», на самом деле означает?
  • Python - лучший язык программирования в мире.