На этом шаге мы дадим краткое введение в структуры данных Python.
Что должен применять на практике и что должен твердо знать каждый разработчик на Python?
Структуры данных. Они являются основополагающими конструкциями, вокруг которых строятся программы. Каждая структура данных обеспечивает отдельно взятый способ организации данных с целью эффективного к ним доступа в зависимости от вашего варианта использования.
Убеждены, что возвращение к основам для программиста всегда окупается, независимо от его уровня квалификации или опыта.
Нужно сказать, что мы не считаем, что необходимо сосредоточиваться на расширении знаний об одних только структурах данных - проблема такого подхода заключается в том, что тогда мы застреваем в "стране грез" и не даем реальных результатов, пригодных для поставки клиентам...
Но небольшое время, потраченное на приведение в порядок своих знаний о структурах данных (и алгоритмах), всегда окупается.
Делаете ли вы это в течение нескольких дней в виде четко сформулированного "спринта" либо в виде затянувшегося проекта урывками тут и там, не имеет никакого значения. Так или иначе, обещаю, что время будет потрачено не напрасно.
Ладно, значит, структуры данных в Python, так? У нас есть списки, словари, множества... м-м-м. Стеки? Разве у нас есть стеки?
Видите ли, проблема в том, что Python поставляется с обширным набором структур данных, которые находятся в его стандартной библиотеке. Однако их обозначение иногда немного "уводит в сторону".
Зачастую неясно, как именно общеизвестные "абстрактные типы данных", такие как стек, соответствуют конкретной реализации на Python. Другие языки, например Java, больше придерживаются принципов "computer sciencе" и явной схемы именования: в Java список не просто "список" - это либо связный список LinkedList, либо динамический массив ArrayList.
Это позволяет легче распознать ожидаемое поведение и вычислительную сложность этих типов. В Python отдается предпочтение более простой и более "человеческой" схеме обозначения, и она, по нашему мнению, является более привлекательной.
Но обратная сторона в том, что даже для опытных разработчиков на Python может быть неясно, как реализован встроенный тип list: как связанный список либо как динамический массив. И в один прекрасный день отсутствие этого знания приведет к бесконечным часам разочарования или неудачному собеседованию при приеме на работу.
Начиная с этого шага, мы проведем вас по фундаментальным структурам данных и реализациям абстрактных типов данных (АТД), встроенным в Python и его стандартную библиотеку.
Здесь наша цель состоит в том, чтобы разъяснить, как наиболее распространенные абстрактные типы данных соотносятся с принятой в Python схемой обозначения, и предоставить краткое описание каждого из них. Эта информация также поможет вам засиять во всей красе на собеседованиях по программированию на Python.
На следующем шаге мы рассмотрим словари, ассоциативные массивы и хеш-таблицы.