Структуры данных Python

struktury dannyh python Структуры данных

Структуры данных составляют основу большинства программ, хотя программисты на языке Python могут зачастую совсем не беспокоиться об этом. Их спокойствие оправданно, потому что Python предоставляет богатый набор встроенных и оптимизированных типов, облегчающих работу со структурированными данными: списки, строки, кортежи, словари, множества и другие. В простых системах этих типов обычно достаточно. Словари, например, делают многие классические алгоритмы поиска ненужными в Python, а списки избавляют от большой части работы, необходимой для поддержки коллекций в языках более низкого уровня. Теми и другими настолько просто пользоваться, что обычно не приходится задумываться над ними.

Но в более сложных приложениях может потребоваться вводить собственные, более сложные типы, чтобы справиться с дополнительными требованиями или особыми ситуациями. В этой главе мы рассмотрим несколько реализаций более сложных структур данных: множеств, стеков, графов и других. Как будет показано, структуры данных принимают в Python вид новых типов объектов, интегрированных в модель типов языка. То есть объекты, которые создаются на языке Python, становятся законченными типами данных — для использующих их сценариев они выглядят точно так же, как списки, числа и словари.

Хотя примеры в этой главе иллюстрируют более сложную технику программирования, в них также подчеркнута поддержка в Python создания по втор но ис поль зуе мо го программного обеспечения. Реализации объектов, написанные с помощью классов и модулей, естественным образом становятся полезными компонентами и могут быть использованы в любой импортирующей их программе. В сущности, мы будем создавать библио те ки инструментов для работы со структурами данных, даже не планируя этого делать.

Кроме того, большинство примеров в этой главе представляют собой чистый программный код на языке Python (и, по крайней мере, для тех, кто читал все по порядку, некоторые из них могут показаться относительно простыми в сравнении с примерами из предыдущих глав), однако они также представляют собой основу для обсуждения проблем производительности и могут служить подсказками к главе 20. С самой общей точки зрения новые объекты Python могут быть реализованы на Python или интегрированном языке, таком как C. При определении типов в языке C используются шаблоны, похожие на используемые здесь.

Наконец, мы также увидим, что зачастую вместо частных решений в этой области могут использоваться встроенные возможности Python. Хотя реализация собственных структур данных иногда бывает просто необходима и они могут обеспечивать определенные удобства с точки зрения сопровождения программного кода и его развития, тем не менее в языке Python они могут не играть такой доминирующей роли, как в языках, менее дружественных по отношению к программистам.

Использованная литература:

Марк Лутц — Программирование на Python, 4-е издание, II том, 2011

Каталог сайтов Всего.ру
Оцените статью
Секреты программирования
Добавить комментарий