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

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

Что такое словарь

Словари (dict) хранят в себе ключи и их объекты, где ключ – это имя объекта в словаре. Их могут называть ассоциативными массивами или хеш-таблицами.

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

Для каких целей нам будут полезны словари? 

  • Подсчет каких-то предметов, где ключи – названия предметов, а объект – их количество.

  • Для экономии памяти, если есть массив, который использует не все индексы по порядку.

  • Установка соответствий между объектами, сортировка.

  • Хранение данных разных объектов (например: ключ – ID пользователя ВКонтакте, а объект – массив с данными).

Ключом может быть произвольный неизменяемый тип данных: различные числа, строки, кортежи. Ключом в словаре не может быть множество, но может быть  неизменяемый элемент типа frozenset. Значением элемента словаря может быть любой изменяемый или неизменяемый тип данных.

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

Пустой словарь в Python, как и в JavaScript, можно создать двумя способами: через функцию dict() или с помощью фигурных скобок. Рассмотрим на примере:

#Создание через функцию:
dict1 = dict()
#Создание через фигурные скобки:
dict2 = {}

print(type(dict1)) #Выведет <class 'dict'>
print(type(dict2)) #Выведет <class 'dict'>
print(dict1) #Выведет {}
print(dict2) #Выведет {}

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

#Создание через функцию:
dict1 = dict(car='машина', apple='яблоко')
#Создание через фигурные скобки:
dict2 = {
'car': 'машина',
'apple': 'яблоко'
}

print(dict1) #Выведет {'car': 'машина', 'apple': 'яблоко'}
print(dict2) #Выведет {'car': 'машина', 'apple': 'яблоко'}

Изменение словаря

Добавим в наш словарь объект. Для этого нам нужно придумать значение ключу. Рассмотрим на примере:

dict = {
'car': ‘машина’,
'apple': 'яблоко'
}
dict['orange'] = 'апельсин' #В квадратных скобках указываем имя ключа, а значение после знака равно
print(dict) #Выведет {'car': 'машина', 'apple': 'яблоко', 'orange': 'апельсин'}

Для удаления ключа и его объекта в словаре используют метод del, указывая имя ключа в квадратных скобках:

dict = {
'car': 'машина',
'apple': 'яблоко',
'orange': 'апельсин'
}
del dict['orange']
print(dict) #Выведет {'car': 'машина', 'apple': 'яблоко'}

Перебор элементов словарей в Python

Для вывода всех ключей и значений по порядку используем цикл с оператором in:

dict = {
'car': 'машина',
'apple': 'яблоко',
'orange': 'апельсин'
}
for key in dict:
    print(key, dict[key])
#Выведет:
#car машина
#apple яблоко
#orange апельсин

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

dict = {
'car': 'машина',
'apple': 'яблоко',
'orange': 'апельсин'
}
print(dict['car']) #Выведет 'машина'

Методы словарей в Python

copy() – создание копии словаря. Рассмотрим на примере:

dict1 = {
'car': 'машина',
'apple': 'яблоко',
'orange': 'апельсин'
}
dict2 = dict1.copy()
print(dict2) #Выведет {'car': 'машина', 'apple': 'яблоко', 'orange': 'апельсин'}

get() – получение значения по ключу. Рассмотрим на примере:

dict = {
'car': 'машина',
'apple': 'яблоко',
'orange': 'апельсин'
}
print(dict.get('car')) #Выведет 'машина'

clear() – очистка словаря. Рассмотрим на примере:

dict = {
'car': 'машина',
'apple': 'яблоко',
'orange': 'апельсин'
}
dict.clear()
print(dict) #Выведет {}

keys() – получение всех ключей словаря. Рассмотрим на примере:

dict = {
'car': 'машина',
'apple': 'яблоко',
'orange': 'апельсин'
}
print(dict.keys()) #Выведет  dict_keys(['car', 'apple', 'orange'])

values() – получение всех значений элементов словаря. Пример:

dict = {
'car': 'машина',
'apple': 'яблоко',
'orange': 'апельсин'
}
print(dict.values()) #Выведет dict_values(['машина', 'яблоко', 'апельсин']) 

items() – получение всех элементов словаря, включая ключи. Рассмотрим на примере:

dict = {
'car': 'машина',
'apple': 'яблоко',
'orange': 'апельсин'
}
print(dict.items()) #Выведет dict_items([('car', 'машина'), ('apple', 'яблоко'), ('orange', 'апельсин')])

pop() – удаляет и возвращает значение ключа. Рассмотрим на примере:

dict = {
'car': 'машина',
'apple': 'яблоко',
'orange': 'апельсин'
}
print(dict.pop('car')) #Выведет ‘машина’
print(dict) #Выведет {'apple': 'яблоко', 'orange': 'апельсин'}

popitem() – удаляет и возвращает имя и значение ключа. Пример:

dict = {
'car': 'машина',
'apple': 'яблоко',
'orange': 'апельсин'
}
print(dict.popitem()) #Выведет ('orange', 'апельсин')
print(dict) #Выведет {'car': 'машина', 'apple': 'яблоко'}

setdefault() – получение значения по ключу, если такой ключ присутствует в словаре. Когда такого ключа нет, он создается со значением None (если оно не указано в свойствах). Рассмотрим на примере:

dict = {
'car': 'машина',
'apple': 'яблоко',
'orange': 'апельсин'
}
print(dict.setdefault(‘car’) #Выведет 'машина'
print(dict.setdefault('home', 'дом') #Выведет 'дом'
print(dict) #Выведет {'car': 'машина', 'apple': 'яблоко', 'orange': 'апельсин', 'home': 'дом'}

update({}) – обновить значения по ключам, добавление новых ключей:

dict = {
'car': 'машина',
'apple': 'яблоко',
'orange': 'апельсин'
}
dict.update({'car': 'автомобиль', 'home': 'дом'})
print(dict) #Выведет {'car': 'автомобиль', 'apple': 'яблоко', 'orange': 'апельсин', 'home': 'дом'}

Итог

Мы изучили словари в Python и методы работы с ними. Надеюсь, статья была полезной для вас. Удачи!

Межтекстовые Отзывы
Посмотреть все комментарии
guest