Блог
  • Разработка

Что такое словарь и как с ним работать в Python

Разработчики приложений на языке Python часто упоминают термин dictionary. Новички могут подумать, что он нужен для перевода программного кода. Но что это на самом деле, расскажем в этой статье. А ещё о том, как их использовать, и попробуем создать собственный.

«Словарь», или Dict. Что это за структура данных

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

Словари часто используются в Python для представления данных, полученных из внешних источников, таких как API. Словари в Python предоставляют быстрый доступ к данным на основе ключей, что может повысить производительность в определённых сценариях.

Особенности функции dict

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

Разработчики используют словари в библиотеках для обработки анализа и структуризации данных. Две функции этой библиотеки работают со словарями как с входными значениями.

1. DataFrame.Rename. Метод позволяет переименовать метки осей в двумерной структуре данных DataFrame. При этом вы предоставляете словарь, где старые имена (ключи) соответствуют новым именам (значениям). Метки, которые не указаны в словаре, останутся без изменений.

2. DataFrame.replace. Метод, который позволяет заменять одни значения внутри двумерной структуры данных DataFrame на другие. При этом метки столбцов и индексы остаются без изменений.

Один словарь может содержать множество других, вложенных в него. Они так и называются — вложенными, или «матрёшками». Их вы увидите, когда будете загружать из социальной сети «ВКонтакте» определённую информацию через API. Словари также используют при работе с Numbering API от МТС Exolve.

Посмотрим, какие методы существуют для работы со словарями в Python.

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

Попробуем создать словарь. Для всех словарей действует общее правило — они создаются с помощью фигурных скобок {} и функции dict().

Несколько примеров:

1. Создаём пустой словарь.

pets = {} 

2. Прописываем в него три элемента.

pets = {'dog': 2, 'monkey': 3, 'cat': 5}

3. Добавляем ещё один новый элемент.

pets['horse'] = 4

4. По ключу 'dog' получаем значение из словаря.

print(pets['dog'])
# Получим 2

5. Проверяем, что ключ есть в словаре.

if 'monkey' in my_pets:
print('Обезьяна в словаре!')

6. Удаляем элемент с котом.

del pets['cat']

7. Получим все ключи и значения.

keys = pets.keys()
values = pets.values()

8. Попробуем перебрать элементы словаря.

for key, value in pets.items():
print(f'Ключ: {key}, Значение: {value}')

Основные методы работы со словарями в Python

Метод

Значение

Update

Метод Update добавляет или обновляет пары «ключ — значение». Вы можете обновить или добавить любое количество пар.

Пример кода с Update

# Создаём словарь:
dictionary = {'спорт': 'финская ходьба длиной около 10 километров', 'индивид': 'отдельное лицо', 'ботинок': 'обувь, отличающаяся от сапога'}

# Выводим исходный словарь:
print("Исходный словарь:", dictionary)

# Допишем значения в словарь методом update:
dictionary.update({'ходил': 'ходить в будущем времени', 'ботинки': 'ботинок в единственном числе'})

# Выводим обновлённый словарь:
print("Обновлённый словарь:", dictionary)


Get

Метод get применяется для получения значения по ключу из словаря. Если ключ отсутствует, метод возвращает None. Разработчик может указать альтернативное значение, которое метод вернёт при отсутствии ключа.

Разработчик может прописать значение, которое должен вернуть метод при его отсутствии.

Пример кода с Get ниже

book_count = {'один': 1,
'два': 2,
'три': 3,
'семь': 7}

result = book_count.get('четыре', 0)
print(result) # Выведет: 0 как значение по умолчанию

Pop

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

Пример кода с Pop ниже

book_count = {'один': 1,
'два': 2,
'три': 3,
'семь': 7}

book_count.pop('один') # удаляем один

print(book_count) # Выведет: {'два': 2, 'три': 3, 'семь': 7}

Keys

Метод Keys используют для получения всех ключей из словаря в виде «представления ключей» (view). Это не является обычным списком, но его можно легко преобразовать в список или итерироваться по нему.

Пример кода с Keys ниже

book_count = {'один': 1,
'два': 2,
'три': 3,
'семь': 7}

# Используем метод keys() для получения списка всех ключей из словаря.
keys_list = book_count.keys()

print(keys_list) # Выведет: dict_keys(['один', 'два', 'три', 'семь'])

Values

Values() — метод словарей в Python. Он возвращает итерируемый объект (особый DictView объект), позволяющий получить значения словаря.

Пример кода с Values ниже

book_count = {'один': 1,
'два': 2,
'три': 3,
'семь': 7}

values_list = book_count.values()
print(values_list) # Выведет: dict_values([1, 2, 3, 7])


Items

Items — метод словарей в Python, который возвращает список кортежей, где каждый кортеж состоит из пары «ключ — значение». Этот список представляет собой объект dict_items, который можно итерировать.

Пример кода с Items ниже

user_info = {'Имя': 'Анна',
'Возраст': 28,
'Город': 'Москва',
'Профессия': 'Инженер'}

# Используем метод items() для получения списка пар «ключ — значение» из словаря user_info.

items_list = user_info.items()

print(items_list) # Выведет: dict_items([('Имя', 'Анна'), ('Возраст', 28), ('Город', 'Москва'), ('Профессия', 'Инженер')])


Copy

Метод создаёт поверхностную копию словаря. Необходимо быть осторожными при работе с вложенными структурами данных (например, другими словарями или списками) внутри словаря. Изменения во вложенных объектах копии словаря также будут отражены в оригинальном словаре, поскольку поверхностная копия создаёт новый словарь, но ссылки на вложенные объекты остаются теми же.


Пример кода с Copy ниже

# В нём мы увидим, что параметры «вес» и «рост» содержат только ссылки вместо дубликатов. Для получения дубликатов используйте глубинную копию, которую можно получить функцией deepcopy.

employees = {'Сергей': 170, 'Иван': 164, 'Андрей': 182}
employees_2 = employees.copy() # поверхностная копия
employees_2['Иван'] = 174
print(employees)
print(employees_2)

employees_weights = {'Сергей': [170, 62], 'Иван': [164, 70], 'Андрей': [182, 76]}
employees_weights_2 = employees_weights.copy()
employees_weights_2['Иван'][0] = 180
print(employees_weights)

Len

Используя len, вы определяете длину объекта или количество элементов в контейнере. В контексте словаря len возвращает количество пар «ключ — значение».


Пример кода с Len ниже

# Создаём словарь.
employees = {'Сергей': 170, 'Иван': 164, 'Андрей': 182}

# Определяем длину словаря.
print(len(employees))
#вернёт 3

Для чего используют и где применяют словари

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

  • Словари отлично подходят для установления соответствий между различными элементами, представляя данные в формате «ключ — значение».

  • Словари идеально подходят для хранения связанных данных разных объектов. Например, где ключ может быть ID пользователя в Telegram, а соответствующее ему значение — набором данных пользователя.

Заключение

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

Предыдущая статья
Оцените статью:
Следующая статья