Введение

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

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

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

#creating an empty dictionary 
my_dict = {}

Теперь ваша очередь создать свой собственный пустой словарь. Откройте оболочку Python или создайте новый файл .py в своем любимом редакторе и введите следующий код.

Общий синтаксис следующий:

my_dict = {key1: value1, key2: value2, key3:value3, keyN: valueN}

Чтобы улучшить читаемость и свести к минимуму вероятность внесения ошибок, тот же код можно записать так:

my_dict = {
           key1: value1, 
           key2: value2,
           key3: value3,
           keyN: valueN,
          }

Пример

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

telephone_directory = {
                       "Pam": "087655",
                       "Jane": "089655",
                       "Jim": "086495",
                       "Sandi": "08565",
                       "Elvis": "089690",
                       }

Доступ к значениям словаря

Допустим, теперь вы хотите проверить номер телефона Сэнди, вам нужно будет ввести следующую команду:

#print Sandi's phone number 
print(telephone_directory["Sandi"])
#output: 08565

Мы можем использовать цикл for для вывода всех значений в каталоге:

for name, num in telephone_directory.items():
    print(name,":",num)

Смотрите скриншот кода ниже:

Вывод:

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

print(telephone_directory["Musa"])

Вывод:

Другим альтернативным способом доступа к значениям словаря является метод get().

 #use the get method 
print(telephone_directory.get("Pam")
#Output: 087655

При попытке получить доступ к несуществующему значению с помощью метода get() программа возвращает None вместо сообщения об ошибке.

#use get() to access invalid key 
print(telephone_directory.get("Musa")
#Output: None

Метод get() позволяет указать второй аргумент, который будет напечатан вместо «None», если ключ не существует.

#specify message to be printed if key does not exist 
print(telephone_directory.get("Musa","Invalid key"))
#Output: Invalid Key

Проверка длины словаря

Проверить длину словаря очень просто:

dict_len = len(telephone_directory)
print(dict_len) 
#Output: 5 

Добавление или изменение элементов словаря

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

# changing the value
print(telephone_directory)
telephone_directory["Pam"] = "097552"
print(telephone_directory)
#adding new name
telephone_directory["John"] = "0987654"
print(telephone_directory)

Вывод:

Удаление элементов из словаря

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

#remove element using pop() 
print(telephone_directory.pop("Jane"))
#Output: 089655

Метод popitem() удаляет последний элемент пары "ключ-значение" из словаря и возвращает его в виде кортежа:

#remove last item using popitem() method 
print(telephone_directory.popitem())
#Output: ('John', '0987654')

Чтобы удалить все элементы сразу, вы можете использовать метод clear():

#Delete all items in the dictionary 
telephone_directory.clear()
print(telephone_directory)
#Output: {}

Другие методы словаря

Ниже приведены встроенные методы, которые можно использовать со словарями.

  • copy(): возвращает копию словаря.
  • get(): возвращает значение указанного ключа.
  • pop(): удаляет элемент, соответствующий указанному ключу.
  • popitem(): удаляет последний вставленный элемент (пара значение-ключ).
  • значения: возвращает список всех значений.
  • items(): возвращает список с кортежем для каждой пары ключ-значение.
  • type(): возвращает тип переменной.
  • clear():удаляет все элементы из словаря.
  • str(): возвращает строковое представление словаря.
  • update(): обновляет словарь парой ключ-значение.

Подробнее

Поздравляем с прочтением руководства до конца. Теперь вы должны понимать основы структуры данных словаря в Python и иметь возможность создавать свой собственный словарь. Помните, лучший способ научиться — это практиковаться. Так что давай!