Что такое словарь, или тип данных dict мы говорили ранее, а в этой статье разбирем работу со словарями, их методы и функции словарей в Python.
Что бы создать пустой словарь, необходимо:
users = {}
Просто дать имя переменной и присвоить пустые фигурные скобки.
Добавление элементов в словарь:
Что бы добавить элемент в пустой словарь, обращаемся к словарю, в квадратных скобках пишем ключ и за скобками присваиваем значение:
users["Anton"] = 12 # {"Anton": 12}
Очень важно помнить, что если ключа нет в словаре, то будет добавлено в словарь эта пара ключ и значение, а если ключ уже имеется, то будет перезаписано его значение!
Добавление и обновление словарей — методы и функции словарей в Python
Метод update() — с его помощью можно внести элементы из другого словаря, который передаётся внутрь скобок:
my_dict = {"Developer" : "Ann"} my_dict_2 = {"Macbook" : "Pro", "Developer" : "Nick", "Iphone": 1} my_dict.update(my_dict_2) print(my_dict) #{'Developer': 'Nick', 'Macbook': 'Pro', 'Iphone': 1} print(my_dict_2) #{'Macbook': 'Pro', 'Developer': 'Nick', 'Iphone': 1}
К исходному словарю вызываем метод update(), в него передаем тот словарь, который хотим добавить в исходный. Но будьте осторожны, если в исходном словаре и добавляемом будут одинаковые ключи, то значение в исходном будет перезаписано значением добавляемого!
Метод fromkeys() — позволяет создать словарь, в который необходимо передать два элемента. Первый будет использован как ключ, причём, если передать массив данных, ключами станут отдельные элементы массива. Вторым элементом является значение. Надо отметить, что все ключи получат одинаковое значение.
my_dict = dict.fromkeys(("Macbook", "Iphone"), 1) print(my_dict) #{'Macbook': 1, 'Iphone': 1}
Если же в скобки передать один элемент, ключи будут генерироваться так же, но приобретут значение None, то есть пустоты:
my_dict = dict.fromkeys(("Apple", "Iphone")) print(my_dict) # {'Apple': None, 'Iphone': None}
Получение данных со словаря в Python
Метод keys() — позволяет отдельно получить значения ключей.
my_dict = {"Macbook" : "Pro", "Developer" : "Nick", "Iphone" : 1} print(my_dict.keys()) # dict_keys(['Macbook', 'Developer', 'Iphone'])
Обратите внимание, если посмотреть тип данных, которые возвращает нам метод keys(), то он будет: dict_keys
my_dict = {"Macbook" : "Pro", "Developer" : "Nick", "Iphone" : 1} print(type(my_dict.keys())) # <class 'dict_keys'>
Метод values() — аналогично ключам, отдельно можно получить значения, а тип возвращаемого объекта будет: dict_values
my_dict = {"Macbook" : "Pro", "Developer" :"Nick", "Iphone" : 1} print(my_dict.values()) print(type(my_dict.values())) # dict_values
Метод items() — возвращает пару ключ : значение, а тип данных у этого объекта будет: dict_items
my_dict = {"Macbook" : "Pro", "Developer" : "Nick", "Iphone" : 1} print(my_dict.items()) print(type(my_dict.items())) # <class 'dict_items'>
Часто словари имеют очень большой объём и возникает необходимость проверить наличие ключа. Если мы выведем значение ключа, не существующего в словаре, знакомым способом, получим ошибку.
Чтобы избежать подобного, используются методы get() и setdefault(). Разница между ними заключается в том, что при отсутствии искомого ключа, первый вернёт None, а второй создаст искомый ключ и присвоит ему значение None.
Проверим работу методов:
my_dict = {"Macbook" : "Pro", "Developer" : "Nick", "Iphone" : 1} print(my_dict.get("Developer")) # Nick print(my_dict.get("Key")) # None print(my_dict) # {'Macbook': 'Pro', 'Developer': 'Nick', 'Iphone': 1} print(my_dict.setdefault("Developer")) # Nick print(my_dict.setdefault("Key")) # None print(my_dict) # {'Macbook': 'Pro', 'Developer': 'Nick', 'Iphone': 1, 'Key': None}
Удалить элемент — методы и функции словарей в Python
Метод pop() — удаляет элемент словаря по ключу, т.е. передаем в метод обязательно существующий ключ, если передать несуществующий ключ, возникнет ошибка:
my_dict = {"Macbook" : "Pro", "Developer" : "Nick", "Iphone" : 1} print(my_dict) # {'Macbook': 'Pro', 'Developer': 'Nick', 'Iphone': 1} print(my_dict.pop("Macbook")) # Pro print(my_dict) # {'Developer': 'Nick', 'Iphone': 1} print(my_dict.pop("Key")) # KeyError: 'Key'
Метод popitem() удаляет из словаря последние пару «ключ»:»значение», возвращая их.
my_dict = {"Macbook" : "Pro", "Developer" : "Nick", "Iphone" : 1} print(my_dict.popitem()) print(my_dict) # {'Macbook': 'Pro', 'Developer': 'Nick'}
Это основные методы, которые встречаются в 90% случаев, при написании программ с использованием словарей. Остальные методы и функции словарей в Python встречаются не так часто, но они все же есть.
Что бы удалить пару ключ и значение из словаря, еще можно использовать команду del, но надо быть осторожным, если не указать ключ, то удалим с памяти весь словарь, целиком:
my_dict = {"Macbook" : "Pro", "Developer" : "Nick", "Iphone" : 1} del my_dict['Macbook'] {'Developer': 'Nick', 'Iphone': 1}