Какова типичная базовая структура данных, используемая для реализации встроенного в список типов данных Python?Какова основная структура данных для списков Python?
ответ
Объекты списка реализованы как массивы. Они оптимизированы для быстрых операций с фиксированной длиной и несут O (n) затраты на перемещение памяти для pop (0) и Вставка (0, v) операций, которые меняют как размер, так и местоположение основного представления данных .
Смотрите также: http://docs.python.org/library/collections.html#collections.deque
Btw, я нахожу интересным, что учебник Python на структуры данных рекомендует использовать поп (0) для имитации очереди, но не говоря уже о (п) или дека вариант ,
http://docs.python.org/tutorial/datastructures.html#using-lists-as-queues
Очень хороший момент об учебнике! Это должно быть исправлено. –
Учебник существовал задолго до модуля deque, вот почему. Сообщите об этом на bugs.python.org, если это возможно, с патчем для правильного предложения, и учебник больше не будет давать неправильные подсказки. –
CPython:
typedef struct {
PyObject_VAR_HEAD
/* Vector of pointers to list elements. list[0] is ob_item[0], etc. */
PyObject **ob_item;
/* ob_item contains space for 'allocated' elements. The number
* currently in use is ob_size.
* Invariants:
* 0 <= ob_size <= allocated
* len(list) == ob_size
* ob_item == NULL implies ob_size == allocated == 0
* list.sort() temporarily sets allocated to -1 to detect mutations.
*
* Items must normally not be NULL, except during construction when
* the list is not yet visible outside the function that builds it.
*/
Py_ssize_t allocated;
} PyListObject;
Как можно видеть на следующей строке, список объявлен как массив указателей на PyObjects
.
PyObject **ob_item;
В Jython implementation, что это ArrayList<PyObject>
.
- 1. Какова основная структура std :: initializer_list?
- 2. Какова основная структура std :: map?
- 3. Основная структура данных Python Реализация
- 4. Python, какова структура данных для тройных данных
- 5. Python SQLAlchemy Основная структура
- 6. Основная структура данных
- 7. Основная структура данных графа
- 8. Какова структура данных номера Inode?
- 9. Какова структура данных стека?
- 10. Какова структура этих данных?
- 11. Написание строки в Python, какова лучшая структура данных для использования?
- 12. Какова лучшая структура данных для реализации очереди?
- 13. Какова будет правильная структура данных для вопросника
- 14. Haskell: Какова базовая структура данных для списка?
- 15. Какова структура факельного набора данных?
- 16. Какова наиболее эффективная структура данных графа в Python?
- 17. Библиотека Javascript для визуализации списков (структура данных)
- 18. Какова структура данных в ОЗУ?
- 19. Какова будет структура базы данных?
- 20. Какова структура данных файла RMAN?
- 21. Какова основная цель холста?
- 22. Какова основная цель WebExceptionStatus.Success?
- 23. MFC основная структура вопросов
- 24. Основная структура данных с несколькими родительскими отношениями
- 25. Какова основная работа qtimer?
- 26. Какова основная технология крио?
- 27. Какова основная концепция WaitHandle?
- 28. Основная структура таблицы вопрос
- 29. C++ Какова лучшая структура данных для двухмерного массива объектов «свая»?
- 30. Структура данных Python для тезауруса
два варианта: 1) просто любопытство, или 2) преждевременная оптимизация. – flybywire
Кто-то другой задал мне этот вопрос, и я сказал им, что моя интуиция заключается в том, что реализация была основана на массиве, но я не был уверен. Это вызвало мое любопытство, и я решил спросить. – Nixuz
Верьте или нет. Я потратил пару минут на поиски ответа на этот вопрос, и даже если бы я загрузил исходный код, я, вероятно, не знал бы, с чего начать. Я подумал, что кто-то здесь знает ответ с минимальными усилиями, и кажется, что я прав. Легкая репутация для них, быстрый ответ для меня, все побеждают. – Nixuz