Узнайте, что динамические списки могут сделать для вас уже сегодня!
Термин «структура данных» может показаться пугающим, и ничего страшного, мы его демистифицируем. Даже если вы новичок в программировании, вы готовы узнать о структурах данных, возможно, вы уже знаете о них, даже не осознавая этого.
В этой статье мы собираемся обсудить структуры данных в Python, а затем перейдем к более подробным, динамическим массивам (их также можно назвать динамическими списками). После прочтения этой статьи вы сможете уйти, зная, что означает термин динамический в сочетании со структурами данных в Python, как динамические массивы работают «под капотом» (то есть как код Python делает это волшебство) и как вы можете масштабировать свой код и поразите современников своими новыми потрясающими способностями колдовства кода. Готовый?
Вот секрет, о котором мало кто когда-либо говорил так прямо: структура данных - это что-то в вашем коде, которое содержит информацию. Массивы и списки: также известные как потрясающие, удивительные и простые для понимания структуры данных.
Конечно, структуры данных могут стать немного сложнее. Списки могут стать очень сложными, и когда вам придет время познакомиться с кортежами, словарями и наборами, вы можете почувствовать себя потерянным - однако знайте, что вы более чем квалифицированы, чтобы начать изучать эти структуры данных и то, как их использовать в своих целях. преимущество. На данный момент все, что вам нужно знать, это то, что они хранят информацию от имени вас и ваших пользователей, и все они существуют для хранения этой информации определенным образом. This - отличный ресурс для понимания всех этих структур данных и того, как они могут лучше всего вам помочь.
Вперед, Благородный Воин Кодекса
Я желаю вам удачи в вашем стремлении освоить структуры данных Python, однако пора перейти к чему-то более конкретному.
Дорогие читатели, вас привели сюда сегодня, чтобы узнать о динамических массивах (списках) в Python. На данный момент я предполагаю, что у вас есть базовое, но четкое представление о списках в Python. Если это правда, пора поговорить о том, как массивы в Python являются динамическими. В этом примере динамический означает постоянный рост и изменение. И массивы, и списки в Python являются изменяемыми, то есть их можно изменять, добавляя к ним новую информацию в любое время, в отличие от других структур данных, таких как кортежи. Это означает, что они по своей сути динамичны, что означает, что они готовы к увеличению размера (с точки зрения данных). Знать, что списки в Python являются динамическими, достаточно легко понять, но для того, чтобы по-настоящему понять это, давайте погрузимся в то, как код Python, изнутри, делает добавление данных в списки таким чертовски простым.
Изысканная кухня с Python
Как мне объяснили на уроке информатики, списки в Python очень похожи на рестораны. Я представлю этот сценарий, написанный в стиле отмеченных наградами сценариев, с аналогией ресторана, написанной в виде обычного текста, и контекстом кода Python, который сопровождает аналогию, написанную курсивом.
Когда вы идете в ресторан с двумя другими мастерами кода, ведущий спрашивает вас: «сколько?» Вам приходит в голову, что в вашей группе три человека, но ваш друг Алан может присоединиться к вам позже. Вы решаете, что лучше не упоминать, что Алан может прибыть позже, и ваш хост перенесет вас к столу на троих - здесь, Python устанавливает список с тремя участками памяти. Как назло, Алан решает присоединиться к вам за ужином. Хозяин ресторана говорит, что в этом нет ничего страшного, и пододвигает Алана лишний стул, все прекрасно подходят к столу - теперь Python добавляет еще один, этот новый фрагмент данных в существующий список, потому что это небольшое выделение памяти, очень выполнимо.
Теперь все заказывают закуски, когда вы замечаете в ресторане свою хорошую подругу Анишу и просите ее присоединиться к вам. Теперь, добавление Аниши к столовой составляет в общей сложности пятерых из вас, и управлять всеми пятью из вас за исходным столом из трех, которые вам дали, просто не сработает. Вы сообщаете хосту, что вам нужна таблица большего размера, и ваш хост извлекает несколько строк, сообщая вам, что ваша таблица для пяти теперь готова, и сопровождает вас к вашей новой таблице - вместо добавления другого места в памяти Python берет существующий список и создает новый с пятью выделениями памяти.
Теперь все устроились и чувствуют себя комфортно, когда к столу подаются первые блюда. Затем, по-видимому, без предупреждения, к обеду приходит другой друг, Ансель. Оказывается, Алан пригласил Анселя, но не предупредил хозяина, что ваш званый обед в конечном итоге вырастет до шести человек. Устав от выходок вашего обеда, хозяин и остальной персонал ресторана умудряются составить новую схему рассадки гостей, но на этот раз они усаживают вас за стол на десять человек. Хотя ваша обеденная вечеринка в настоящее время занимает только шесть из десяти мест, ресторан больше не доверяет вам дать точное количество человек на вашей обеденной вечеринке и не знает, сколько мест им нужно подготовить. Таким образом, если к вам присоединится больше гостей, хозяин и обслуживающий персонал не должны предпринимать никаких дальнейших действий, если к вам случайным образом присоединятся другие люди. Python берет список, который вы ему предоставили, и находит новое место в памяти с 10 слотами памяти, хотя вам нужно использовать только шесть из этих слотов, таким образом, когда в память добавляется больше элементов, они могут быть добавлены к существующим. list, и необходимость в создании нового списка с большим объемом памяти отпадет (если, конечно, вы не пригласите на ужин десять человек, и в этом случае процесс начнется снова).
Если вы думаете: «Извините, но я ненавижу хорошие аналогии и хочу прочитать более техническое объяснение этого процесса» - увы.
Ваше желание - моя команда.
Распределение памяти может быть таким простым: когда ваш список Собак превышает выделенную для списка память, Python создает новый список более крупных собак в новом пространстве памяти и устанавливает более крупных собак равным Собаки . Для вашего чистого удовольствия от чтения я рекомендую эту статью: Реализация динамических массивов в программировании на Python, в которой об этом говорится более подробно.
Спасибо, что остались и прочитали о Python, ресторанах и структурах данных. Надеюсь, вам понравилась эта статья!