Шаг 90.
Python: тонкости программирования.
Общие структуры данных Python (общие сведения)

    На этом шаге мы дадим краткое введение в структуры данных Python.

    Что должен применять на практике и что должен твердо знать каждый разработчик на Python?

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

    Убеждены, что возвращение к основам для программиста всегда окупается, независимо от его уровня квалификации или опыта.

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

    Но небольшое время, потраченное на приведение в порядок своих знаний о структурах данных (и алгоритмах), всегда окупается.

    Делаете ли вы это в течение нескольких дней в виде четко сформулированного "спринта" либо в виде затянувшегося проекта урывками тут и там, не имеет никакого значения. Так или иначе, обещаю, что время будет потрачено не напрасно.

    Ладно, значит, структуры данных в Python, так? У нас есть списки, словари, множества... м-м-м. Стеки? Разве у нас есть стеки?

    Видите ли, проблема в том, что Python поставляется с обширным набором структур данных, которые находятся в его стандартной библиотеке. Однако их обозначение иногда немного "уводит в сторону".

    Зачастую неясно, как именно общеизвестные "абстрактные типы данных", такие как стек, соответствуют конкретной реализации на Python. Другие языки, например Java, больше придерживаются принципов "computer sciencе" и явной схемы именования: в Java список не просто "список" - это либо связный список LinkedList, либо динамический массив ArrayList.

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

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

    Начиная с этого шага, мы проведем вас по фундаментальным структурам данных и реализациям абстрактных типов данных (АТД), встроенным в Python и его стандартную библиотеку.

    Здесь наша цель состоит в том, чтобы разъяснить, как наиболее распространенные абстрактные типы данных соотносятся с принятой в Python схемой обозначения, и предоставить краткое описание каждого из них. Эта информация также поможет вам засиять во всей красе на собеседованиях по программированию на Python.

    На следующем шаге мы рассмотрим словари, ассоциативные массивы и хеш-таблицы.




Предыдущий шаг Содержание Следующий шаг