В этой статье разберем все о логике работы словарей в Python. Мы научимся создавать их, получать доступ к элементам словаря, добавлять, удалять элементы. При работе со словарями мы так же разберем и встроенные методы. В Python работа со словарями, особо не отличается от работы со списками, кортежами, и.т.д.
Словарь в Python — это неупорядоченная последовательность элементов. Каждый элемент словаря имеет пару ключ:значение. Словари для извлечение значений, по его ключу.
Как создать словарь ?
Создание словаря, ничем особо сложным не отличается, мы заключаем словарь в фигурные { } скобки, а элементы идут через запятую. Каждый элемент словаря содержит (ключ:значение).
dict = {}
dict = {1:'яблоко',2:'Груша'}
dics = {'name':'Тимур',1:[2,3,4,5]}
dict = dict({1:'Яблоко', 2:'Груша'})
Выше рассмотрены варианты создания словаря в Python. Как вы могли заметить словари можно создать заключая пары в фигурные скобки, так и используя функцию dict().
Внутри словаря, можно хранить в качестве значений любой тип данных. Но, ключи значений обязательно должны иметь неизменяемый тип данных, и так они должны быть уникальными.
Доступ к элементам Словаря
Для доступа к элементам словаря, можно воспользоваться квадратными скобками [], либо использовать метод get(). В случае если мы воспользуемся квадратными скобками, то если ключ не найден, то мы получим ошибку KeyError. Если мы воспользуемся get(), и при условии что ключ не будет найден, функция вернет нам None.
dict ={'name':'Тимур', 'age':30}
print(dict['name'])
print(dict.get('age'))
print(dict.get('adress'))
print(dict['adress'])
Результат:
Тимур
30
None
KeyError: 'adress'
Изменение и добавление элементов в словарь
С помощью оператора присваивания, мы можем добавлять новые элементы, а так же менять значение существующих. Если ключ существует, то обновляется его значение, если он отсутствует, то в словарь добавляется пара (ключ:значение).
dict ={'name':'Тимур', 'age': 30}
dict['age'] = 31
print(dict)
dict['adress'] = 'Москва'
print(dict)
Результат:
{'name':'Тимур', 'age':31}
{'name':'Тимур', 'age':31, 'adress':'Москва'}
Удаление элементов из словаря
С помощью метода pop(), мы можем удалить конкретный ключ, и он нам вернет значение этого ключа. Метод popitem() удалит случайную пару ключ:значение, и так же вернет случайную пару ключ:значение. Весь словарь можно очистить с помощью метода clear(). Для удаление отдельных элементов, можно воспользоваться ключевым словом del.
diction ={1:1,2:4, 3:9, 4:16, 5:25}
print(diction.pop(4))
print(diction)
print(diction.popitem())
print(diction)
diction.clear
print(diction)
Результат:
16
{1: 1, 2: 4, 3: 9, 5: 25}
(1, 1)
{2: 4, 3: 9, 5: 25}
{}
Методы словаря
| Метод | Описание |
| clear() | Удаляет все элементы из словаря. |
| copy() | Возвращает копию словаря. |
| fromkeys(seq[, v]) | Возвращает новый словарь с ключами из seq и значение, равное v (по умолчанию используется значение None). |
| get(key[,d]) | Возвращает значение key. Если key не существует, возвращается d (по умолчанию используется значение None). |
| items() | Возвращает новый объект элементов словаря в формате (ключ, значение). |
| keys() | Возвращает новый объект ключей словаря. |
| pop(key[,d]) | Удаляет элемент с помощью key и возвращает его значение или d если key не найден. Если d не предусмотрено и key не найден, его поднимает KeyError. |
| popitem() | Удаляет и возвращает произвольный элемент (ключ, значение). Повышения KeyError если словарь пуст. |
| setdefault(key[,d]) | Возвращает соответствующее значение, если key есть в словаре. Если нет, то вставляет key со значением d и возвращается d (по умолчанию используется значение None). |
| update([other]) | Обновляет словарь парами ключ/значение из other, перезапись существующих ключей. |
| values() | Возвращает новый объект значений |
Примеры работы этих методов
marks = {}.fromkeys(['Math','English', 'Scinece'], 0)
print(marks)
for item in marks.items():
print(item)
print(list(sorted(marks.keys())))
Результат:
{'Math': 0, 'English': 0, 'Science': 0}
('Math', 0)
('English', 0)
('Science', 0)
['English', 'Math', 'Science']
Генерирование словаря
Если помните, мы с вами уже рассматривали генерацию списков, кортежей и.т.д. В принципе логика генерации словарей, не сильно отличается. Рассмотрим пример создание генерированного словаря, где элемент будет равен квадрату своего ключа.
dictionary = {x: x * x for x in range(6)}
print(dictionary)
Результат:
{0:0,1:1,2:4,3:9,4:16,5:25}
Вышеописанный код эквивалентен
dictionary ={}
for x in range(6):
dictionary[x] = x * x
print(dictionary)
Результат:
{0:0,1:1,2:4,3:9,4:16,5:25}
Так же при генерации словаря, мы можем воспользоваться оператором условий if. Рассмотрим пример создания словаря с нечетными элементами.
dictionary = {x: x * x for x in range(11) if x % 2 == 1}
print(dictionary)
Результат:
{1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
Проверка на наличие элемента
Проверяем наличие элемента, с помощью ключевого слова in.
dictionary = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
print(1 in dictionary)
print(2 not in dictionary)
print(49 in dictionary)
Результат:
True
True
False
Итерация по словарю
dictionary = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
for i in dictionary:
print(dictionary(i))
Результат:
1
9
25
49
81
Встроенные функции словаря
| Функции | Описание |
| all() | ВозвращаетTrue, если все ключи словаря Истинны (или если словарь пуст). |
| any() | ReturnTrue, если какой - либо ключ словаря истинен. Если словарь пуст, вернитесь False. |
| len() | Возвращает длину (количество элементов) в словаре. |
| sorted() | Возвращает новый отсортированный список ключей в словаре. |




