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

Структуры данных в Python: Словари

Часть две из моей серии на структурах данных в Python. Теги с Python, структурами данных, типов данных, словари.

Эта статья также можно найти в моем блоге здесь

Введение

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

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

Создание словаря

Создание словаря так же просто, как создание списка:

a = {}
print (a)

Здесь мы назначаем имя нашего словаря и сделать его равным закрывающим скобкам. Это дает нам следующее:

{}

Добавление записей в словарь

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

computer_list = {}

computer_list["Comp1"] = "Station1"
computer_list["Comp2"] = "Station2"
computer_list["Comp3"] = "Station3"
computer_list["Comp4"] = "Station4"
computer_list["Comp5"] = "Station5"

print (computer_list)

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

{'Comp1': 'Station1', 'Comp2': 'Station2', 'Comp3': 'Station3', 'Comp4': 'Station4', 'Comp5': 'Station5'}

Длина

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

print (len(computer_list))

Мы используем функцию Len () для отчисления общих записей в нашем списке компьютеров.

5   

Удаление записей

Поэтому нам нужно удалить одну из записей в нашем списке. Оказывается, один из компьютеров был перемещен, и им это не нужно.

del computer_list['Comp5']

print (computer_list)

Для удаления записей мы просто используем функцию del (), а затем ссылайтесь на имя словаря и ключ нашей записи, чтобы удалить ее.

{'Comp1': 'Station1', 'Comp2': 'Station2', 'Comp3': 'Station3', 'Comp4': 'Station4'}

Базовый цикл

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

Теперь мне нужно иметь возможность распечатать список наших компьютеров и имена их станций. Для этого мы собрали простую петлю:

for k, v in computer_list.items():
    print(k,v)

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

Comp1 Station1
Comp2 Station2
Comp3 Station3
Comp4 Station4

Перечисление

Обновление На самом деле есть обновление. Чтобы уточнить, нет числового индекса только в том, что функция перечисления дает нам список значений в нумерованном списке. Они не могут быть использованы для захвата ключа/значения. Попробовал пару раз, чтобы убедиться. Благодаря Эндрю для исправления меня. Я рад, что мы можем использовать эти посты как способ получить реальную дискуссию.

for a, b in enumerate(computer_list):
    print (a, b)

Таким образом, мы сделали то же самое, что и выше, и мы получаем ниже. Каждое значение показывает нам пронумерованный индекс для ввода словаря.

0 Comp1
1 Comp2
2 Comp3
3 Comp4

Реальный мир Пример

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

Для этого я решил редактировать его немного. Целью мини-программы состоит в том, чтобы ввести имя узла и иметь вывод программы имя или значение или значение станции на основе имени узла или ключа.

node_name = input("Enter computer name:\n")
node_name = node_name[0].upper() + node_name[1:]

if node_name in computer_list:
    print (computer_list.get(node_name))
else:
    print("Please use a designated computer for this program")

Таким образом, первая часть состоит в том, чтобы создать вход, то убедитесь, что первая буква прописная, чтобы соответствовать нашим заранее определенным ключам. Затем получите создание оператора IF и используйте функцию GET (), чтобы посмотреть на наш список для имени узла. Функция Get () принимает клавишу в качестве аргумента и ищет наш словарь для этого ключа. Затем он выводит значение этого ключа. Если ключ не может быть найден, мы получим сообщение об ошибке, сказав, что наши тестеры должны использовать назначенную станцию тестирования. Это также функционировало, чтобы только определенные рабочие станции могли запускать приложение.

Enter computer name:
comp2
Station2

Вывод

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

Исходный код для этого можно найти здесь

Больше информации на словарях можно найти здесь

Оригинал: “https://dev.to/georgeoffley/data-structures-in-python-dictionaries-3i1h”