Рубрики
Без рубрики

Структуры данных в Python: Списки и Мстители

Введение Хорошо, я увидел бесконечную войну, и это было потрясающе. Это было шокирующее, смешно и заставило меня плакать. Расслабьтесь, есть некоторые спойлеры, но есть предупреждение. Я собираюсь украсть некоторые из …

Автор оригинала: George Offley.

Вступление

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

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

Примитивные против не примитивных структур данных

Давайте рассмотрим, как Python классифицирует свои данные. Примитивные структуры данных являются структурами, которые обрабатываются в языке программирования. Они INT, поплавки, струны внутри Python. Они также упоминаются как типы данных. Не примитивные типы данных в Python относятся к нашим структурам данных. Списки, кортежи, наборы и словари. Это структуры, которые создают программист. Таким образом, когда мы индексируем каждый из них и назначаете местоположение памяти записей в списке. Местоположение памяти вряд ли что-то выставляет Python. Это не то, что вам нужно подумать с языком более высокого уровня. Однако, зная базовую механику языка программирования, на мой взгляд, важно.

Список введение

Списки – это то, как мы можем хранить значения в списке, упомянутых через индексацию каждого из значений. Ниже приведен пример списка:

list = [1,2,3] print (list)

Теперь мы запустим наш список

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

avengers = ['Iron Man','Captain America','Black Widow','The Hulk','Hawkeye','Thor', 'Falcon'] print ("Hero List example: ") print (avengers)

Затем мы запускаем код и получите:

Hero List example: ['Iron Man', 'Captain America', 'Black Widow', 'The Hulk', 'Hawkeye', 'Thor', 'Falcon']

Как видно выше, мы можем распечатать наш список в виде одного списка. Мы также можем использовать цикл для iTerating через список один за другим. Как правило, если мы делаем что-нибудь с этим списком (печать на экране, добавив в базу данных), мы бы использовали для петли для итерации через список

print ("For Loop Example: ") for x in avengers: print (x)

Затем мы запустим код:

For Loop Example: Iron Man Captain America Black Widow The Hulk Hawkeye Thor Falcon

Укладки

Мы можем использовать списки во многих разных способах. Есть способы, мы можем на самом деле «стекать» наши списки. После последнего, в методе первого вывода мы можем использовать Append и функции POP для нашего списка, чтобы добавить людей и отнять их. Те, кто видел капитана Америки: Гражданская война увидела еще два героев в составе.

avengers.append('Black Panther') print ("Append Example: ") for x in avengers: print (x)

Что дает нам

Append Example: Iron Man Captain America Black Widow The Hulk Hawkeye Thor Falcon Black Panther

Теперь мы все знаем, кто черный пантера. У него есть страна, чтобы бежать. У него нет времени сидеть вокруг соединения мстителей и ждать чего-то ужасного. Так же быстро присоединяется к T’challa, он должен отступить назад, чтобы заполнить роль царя Ваканды после смерти отца.

avengers.pop() print ("Pop Example: ") for x in avengers: print (x)

Что дает нам:

Pop Example: Iron Man Captain America Black Widow The Hulk Hawkeye Thor Falcon

Укладка работает так же, как это. Способ добавления добавит запись в конце списка. Способ поп с удаляет запись из списка. Разница с методом POP состоит в том, что вы можете указать индекс (положение) значения, которое вы хотите удалить, и он его удалит. Если оставить пустым, функция POP удалит последнюю запись в списке.

Индексация

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

print (avengers.index('Black Widow'))

Вставьте эту команду в интерпретатор Python и получите 2 или третью позицию в списке.

Лучшее управление ценностями

Итак, первым начать осознавать, что они не были просто в том, что в Мстители были капитана Америки. Итак, скажем, мы не знаем, как работает поп-функция, и у нас нет идеи, где капитан в нашем списке. Мы можем использовать функцию удаления, чтобы удалить его.

avengers.remove('Captain America') print ("Remove Example: ") for x in avengers: print (x)

Функция находит и удаляет данную запись. Если значение не существует, мы получаем возврату ошибки.

Remove Example: Iron Man Black Widow The Hulk Hawkeye Thor Falcon Black Panther

С крышкой и железным человеком на выходах мы получили черную пантера, вставленную в линейку. Тем не менее, железный человек также нуждался в другой руке в приеме капитана Роджерса и его когорты обратно в складку. Входит лучшая версия фильма паука-паука. Давайте добавим его в список. Скажем, мы хотели сделать человека-паука новым лицом мстителей, поэтому мы хотим, чтобы он поставил его в качестве первого значения в списке. Мы можем сделать это с помощью функции вставки. Здесь мы проходим в положении индекса, мы хотим отображать значение, и значение.

avengers.insert(0, 'Spider Man') print ("Insert Example: ") for x in avengers: print (x)

Если мы распечатаем наш список еще раз, мы видим, что человек-паук появляется на самом вершине. С которым я крутой. Том Голландия делает отличный человек-паук/Питер Паркер.

Insert Example: Spider Man Iron Man Captain America Black Widow The Hulk Hawkeye Thor Falcon Black Panther

Сколько пауков-мужчин?

Таким образом, вселенная комиксов имеет дюжину различных вариантов человека-пауков. Там Петр Паркер-Паук-Человек, мои любимые мили Моралеса как человек-паук, а удивительный паук Гвен. MCU (Marvel Cinematic Universe) только один человек-паук на данный момент. Однако давайте посчитаем, сколько существует в нашем списке, чтобы быть в безопасности.

Мы можем использовать функцию Count для нашего списка для подсчета, сколько раз появляется значение в нашем списке.

how_many_spider_mans = avengers.count('Spider Man') print ("Count Example Example: How Manny Spider Men are there?") print (how_many_spider_mans)

MCU имеет только один, поэтому наш список имеет только один ценность человека. Поэтому мы возвращаемся к нам.

Count Example Example: How Manny Spider Men are there? 1

Гнездо

Мы все любили первых опекунов галактики. Великие визуальные эффекты, юмористическая природа диалога и, конечно же, как-то германская смесь 1970-х годов с космическими приключениями. Они существуют отдельно в вселенной Marvel, кроме мстителей на земле. Однако в бесконечности война все они все объединяют в какой-то лучший диалог в MCU. Поэтому у нас есть наш список героев на земле. Теперь приходит еще одна прохладная команда, чтобы присоединиться к ним. Итак, давайте создадим наш новый список.

gotg = ['Star Lord', 'Rocket', 'Groot', 'Drax', 'Gamora']

Теперь, когда у нас есть новый список, нам нужно найти способ включить их в мстители, как-то. Питон вложенные списки к спасению. С списками Python вы можете гнездить списки внутри списков. Есть приложения для этого. Например, сохранение связанной информации вместе в списке было бы отличное использование. Однако в этом конкретном примере может быть лучше использовать класс. Больше на этом позже. Так что давайте добавим опекунов в список Мстителей.

avengers.append(gotg) print ("Append Nested List Example: ") for x in avengers: print (x)

После печати нашего списка мы видим, что у нас есть список опекунов вместе со списком наших других мстителей. Отличная работа Кевин Фейге!

Append Nested List Example: Iron Man Captain America Black Widow The Hulk Hawkeye Thor Falcon Black Panther ['Star Lord', 'Rocket', 'Groot', 'Drax', 'Gamora']

Предупреждающие спойлеры впереди !!

Теперь это предупреждение. Если вы не видели Мстители: Infinity War, пожалуйста, пропустите это. Это огромное окончание, и если вы все равно о фильмах, пожалуйста, не стесняйтесь пропустить до конца. Вы были предупреждены.

Серьезно, впереди есть спойлер. Это доя.

Хорошо, вы были предупреждены. Для тех из нас, кто видел бесконечную войну, мы все знаем, как это заканчивается. Это душераздирающее. Я смотрел это полностью в шоке. Я все еще обрабатываю. В конце концов большинство мстителей убиты. Однако не все, однако хорошая часть. Так что теперь нам нужно обновить наш список. Здесь мы можем использовать четкую функцию для очистки нашего списка мстителей, так как большинство из них больше не существует. Некоторые в списке все еще существуют в MCU, однако, использование конца фильма лучше подходит для этого метода.

avengers.clear() print ("Clear Example: ") print (avengers)

Какие отпечатки

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

Заключение

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

Полный исходный код можно найти здесь: https://github.com/georgeo1989/data-structures-lists.