Основы работы со словарями Python (dict). Get(), Update(), Items(), Keys()

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

Как создать словарь Python?

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

example1 = {}

Этот код – пример словаря, не содержащего никаких значений.

Теперь же приведем вариант словаря, содержащего какую-то информацию.

example2 = {1: ‘tree, 2: ‘grass}

Цифры в этом примере являются ключами. Но это вовсе не обязательно. Также в качестве них нередко используются слова. Например, так.

example3 = {‘vegetable’: ‘onion’, 1: [4, 6, 8]}

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

Это самый простой способ генерации словаря, но не единственный. Также можно воспользоваться методом dict() для этого.

example4 = dict({1:’tomato’, 2:’cucumber’})

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

example5 = {

1: {‘pupil1’: ‘Nick’, ‘pupil2’: ‘Peter’, ‘student3’: ‘Mary’}, 

2: {‘lesson1’: ‘Astronomy’, ‘lesson2’: ‘Physics, ‘lesson3’: ‘Ecology}

}

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

  «Organization»: «Volkswagen», 

  «model»: «Golf», 

  «year»: 2012 

example6 = {

print(example6)

Будет выдан такой словарь, но одной строкой.

{‘Organization’: ‘Volkswagen’, ‘model’: ‘Golf’, ‘year’: 2012}

Обеспечение доступа к элементам словаря

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

example6 = {

  «Organization»: «Volkswagen», 

  «model»: «Golf», 

  «year»: 2012 

y = example6[“model”]

print(y)

После этого наш интерпретатор выдаст строку «Golf».

Последовательность действий в этом алгоритме следующая:

  1. Создается переменная example6, которой присваивается словарь, содержащий имя производителя, модель машины и год выпуска.
  2. После этого создали переменную y, которая получает модель машины из словаря example6.
  3. Программа выводит значение переменной y.

Давайте приведем еще и такой пример.

variablecourses = {‘Name’: ‘Mary’, ‘Age’: 20, ‘Lesson’: ‘History’} 

print(«Name of the student:», variablecourses[‘Name’]) 

print(«Lesson:», variablecourses[‘Lesson]) 

print(«Age:», variablecourses[‘Age’])

Угадайте, какой будет вывод после того, как запустить строки кода?

Name of the student: Mary

Lesson: History

Age: 20

Любой словарь – это объект. Следовательно, как и любой объект, он имеет методы. Один из них – функция get(), с помощью которой также пользователь может получить доступ к объекту словаря.

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

x = options2.get(«model»)

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

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

Добавление новых элементов в словарь

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

auto = {

  «Manufacturer»: «Volkswagen», 

  «model»: «Golf», 

  «year»: 2012 

auto[«Price»] = «10000 USD» 

print(auto)

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

{‘Price’: ‘10000 USD, ‘year’: 2012, ‘Manufacturer’: ‘Volkswagen’, ‘model’: ‘Golf}

Видим, что новый ключ мы добавили, как первый. 

Теперь рассмотрим еще один способ. Нам сперва требуется сгенерировать словарь без значений.

EmptyDictionary = {} 

print(«The dictionary without elements: «) 

print(EmptyDictionary)

Если запустить этот код, то вывод будет состоять исключительно из строки, которая напечатана первой, поскольку сам словарь пустой.

The dictionary without elements

Словарем никакие данные не возвращаются, ведь он ничего не содержит. А вот если присоединить элементы к словарю, в виде такого кода, то вывод полностью изменится.

EmptyDictionary[0] = ‘Apples’ 

EmptyDictionary[2] = ‘Mangoes’ 

EmptyDictionary[3] = 20 

print(«\n3 elements have been added: «) 

print(MyDictionary)

В результате исполнения мы получим следующий результат.

3 elements have been added: {0: ‘Apples’, 2: ‘Mangoes’, 3: 20}

В нашем примере мы добавили 3 элемента, о чем и сообщили. Видим, что мы использовали символ начала новой строки \n. В нашей строке этой части нет. Но если запустить код выше и этот в реальной программе, то эта строка будет написана с новой строки.

Причем добавлять можно не лишь одно значение, а несколько. Например, так:

EmptyDictionary[‘Values’] = 1, «New York», 4 

print(«\n3 elements have been added: «) 

print(Empty Dictionary)

Здесь ключ имеет имя «Values», а далее ему просто передается множество значений.

Таким образом, любой ключ в словаре – переменная, которой передаются самые разные значения, а не исключительно числа или строки.

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

Обновление имеющихся элементов словаря

Предположим, мы добавили элемент в словарь. А потом необходимо в него же внести изменения. Например, изменилась стоимость автомобиля, бывшая в предыдущем коде.

Или же перестали продаваться модели 2012 года и стали продаваться выпущенные в 2014. Это делается очень просто. Нужно достать ключ, интересующий нас, так, как было описано выше, а потом просто присвоить ему нужное значение.

example = {

  «Manufacturer»: «Volkswagen», 

  «model»: «Golf», 

  «year»: 2012 

example[«year»] = 2014 

print(example)

После этого нам уже будет выдаваться в консоли новый год выпуска машины – 2014.

Как удалить элементы словаря?

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

Например, если надо убрать элемент по четко определенному ключу, используется слово «del». Например, так.

example = {

  «Manufacturer»: «Volkswagen», 

  «model»: «Golf», 

  «year»: 2012 

del example[«year»]

print(example)

После этого в строке вывода уже не покажется год выпуска нашего автомобиля.

Также для достижения этой цели можно применить функцию pop(). В качестве ее аргумента необходимо указывать ключ, который надо убрать. 

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

Есть еще одна функция, реализующая поставленную задачу – popitem(). Ее характерная особенность – удаление последнего элемента, записанного в словаре. Ее преимущество – самостоятельность. Она не требует каких-либо аргументов, чтобы стабильно работать.

Точно так же, как и любой другой метод, эта функция вызывается от переменной, которой присвоен объект, через точку:

examplevar.popitem().

Кстати, использовать функцию del возможно применительно к целому словарю.

Прочие распространенные методы словарей Python

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

Keys()

С его помощью вы можете получить список всех ключей, которые входят в конкретный словарь. Вызывается он через точку после той переменной, к которой был присвоен объект типа «словарь».

object.keys()

Copy()

Может потребоваться получить копию уже созданного словаря. Эта задача выполняется с помощью метода copy(). Как и любой другой метод, он вызывается непосредственно с того объекта, к которому он относится.

y = object.copy()

Обратите внимание! Этот объект осуществляет возврат значения в другую переменную.

Len()

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

print(len(example))

Items

Это метод объекта, который вызывается непосредственно от словаря. Используется вместе с циклом for.

for k, v in dict_sample.items(): 

    print(k, v)

Fromkeys()

Этот объект создает новый словарь с некоторыми значениями со старого. Содержит два аргумента:

  1. Ключи, которые перебираются.
  2. Значение, присваиваемое им. Этот аргумент необязательный.

Setdefault

Помогает найти значение элемента по ключу. Если такового не обнаруживается, эта пара ключ-значение добавляется в словарь.

dictionary.setdefault(keyname, value)

ОфисГуру
Adblock
detector