- Топ-10 методов словарей в Python
- Метод items()
- Метод keys()
- Метод setdefault()
- Метод get()
- Метод len()
- Метод pop()
- Метод update()
- Метод copy()
- Метод sorted()
- Метод clear()
- Заключение
- Функция dictionary setdefault() в Python на примере
- Что такое функция dictionary setdefault() в Python?
- Параметры
- Возвращаемое значение
- Пример кода
- Заключение
Топ-10 методов словарей в Python
Словарь в Python используется для хранения наборов данных в виде пар ключ-значение. Он работает как ассоциативный массив, который встречается в других языках программирования. Для определения словаря используются фигурные скобки <> , а пара «ключ-значение» определяется при помощи двоеточия : . Содержимое ключа и значения может быть как числовым, так и строковым.
Для работы со словарями Python имеет множество встроенных методов. С их помощью решаются задачи добавления и удаления элементов, обновления, поиска, подсчета и т.д. В этой статье мы расскажем про десять самых важных, на наш взгляд, методов словарей в Python.
Метод items()
Метод items() используется для возврата списка кортежей с парами всех ключей и значений словаря.
Данный метод не принимает никаких аргументов.
Приведем пример использования данной функции.
Объявлен словарь с именем products . Ключи содержат названия продуктов, а значения — их цены. Используем для нашего словаря метод items() и сохраним в другой переменной с именем itemlist , а затем выведем на экран.
products = < 'Fresh Oil': 500, 'Mango Juice': 30, '5 star Chocalate': 20, 'Dan Fruit Cake':50 >itemlist = products.items() print('The output of items() method:\n', itemlist)
Выполнив данную программу, получим следующий результат:
The output of items() method: dict_items([('Fresh Oil', 500), ('Mango Juice', 30), ('5 star Chocalate', 20), ('Dan Fruit Cake', 50)])
Метод keys()
keys() используется для возврата списка со всеми ключами словаря.
Этот метод также не принимает никаких аргументов.
Давайте рассмотрим метод keys() на примере. В скрипте объявлен словарь с именем products . Как и в предыдущем примере, ключи содержат названия продуктов, а значения — их цену. Применим метод keys() , а возвращаемые значения сохраним в переменной с именем keylist , которую затем выведем на экран.
Если вам нужен список всех значений словаря, следует использовать метод values() , который работает аналогичным образом.
products = < 'Fresh Oil': 500, 'Mango Juice': 30, '5 star Chocalate': 20, 'Dan Fruit Cake':50 >keylist = products.keys() print('The output of keys() method:\n', keylist)
The output of keys() method: dict_keys(['Fresh Oil', 'Mango Juice', '5 star Chocalate', 'Dan Fruit Cake'])
Метод setdefault()
setdefault() используется для получения значения любого конкретного ключа из словаря, если такой ключ существует. Этот метод можно использовать для установки значения по умолчанию, если указанного ключа в словаре нет.
Синтаксис: dictionary.setdefault(key_value [, default_value])
У этого метода два аргумента. Первый является обязательным и используется для указания ключа, по которому будет выполняться поиск в словаре. Второй аргумент опционален. Он используется для установки значения по умолчанию, если ключа, указанного в первом аргументе, не окажется в словаре. Если указанного ключа в словаре нет, а значение по умолчанию не определено, метод вернет «None».
Следующий пример показывает использование метода setdefault() в словаре. Возьмем все тот же словарь products . Для начала используем метод setdefault() с одним аргументом. Сохраним его в переменную с именем juice_price и выведем эту переменную на экран.
products = < 'Fresh Oil': 500, 'Mango Juice': 30, '5 star Chocolate': 20, 'Dan Fruit Cake':50 >juice_price = products.setdefault('Mango Juice') print('Juice price is TK.',juice_price)
Ключ Mango Juice существует в словаре. Значение этого ключа 30, оно и выводится на экран.
А теперь давайте используем этот метод с двумя аргументами, сохраним в переменную с именем cake_price и выведем ее.
cake_price = products.setdefault('Cake',35) print('Cake price is TK.',cake_price)
Выполним данный код и получим следующее:
Ключа Cake в словаре нет. Поэтому печатается значение по умолчанию для метода setdefault() , в нашем случае это 35.
Метод get()
Метод get() работает аналогично методу setdefault() , но между ними есть одно различие. Для метода get() оба аргумента являются обязательными, в то время как в методе setdefault() второй аргумент опционален.
Синтаксис: dictionary.get(key_value , default_value)
Данный метод возвращает значение, соответствующее указанному ключу (ключ задается в первом аргументе). Если же такого ключа в словаре не окажется, метод вернет значение по умолчанию, которое мы задаем во втором аргументе.
В следующем примере используется тот же словарь, что и во всех предыдущих. Здесь метод get() используется дважды, с двумя разными значениями ключа.
products = < 'Fresh Oil': 500, 'Mango Juice': 30, '5 star Chocolate': 20, 'Dan Fruit Cake':50 >choc_price = products.get('Chocolate',15) print('Chocolate price is TK.',choc_price)
Первый ключ, переданный в метод get() , — Chocolate . Его нет в словаре, поэтому выводится значение по умолчанию.
juice_price = products.get('Mango Juice',15) print('Juice price is TK.',juice_price)
Второй ключ, который мы передали в метод get() , — это Mango Juice . Такой ключ в словаре есть, поэтому на экран выводится его значение.
Метод len()
Метод len() используется для подсчета общего количества элементов в словаре (под элементом понимается пара ключ-значение).
Этот метод принимает словарь в качестве аргумента и возвращает общее количество элементов этого словаря.
Давайте рассмотрим данный метод на примере. Следующий скрипт подсчитывает общее количество элементов словаря products и выводит на экран это значение.
products = < 'Fresh Oil': 500, 'Mango Juice': 30, '5 star Chocolate': 20, 'Dan Fruit Cake':50 >print("Total items of the dictionary are:", len(products))
Выполнив данный код, получим, что наш словарь состоит из 4 элементов:
Total items of the dictionary are: 4
Метод pop()
Метод pop() используется для получения конкретного значения по ключу и удаления этого элемента из словаря на основе значения ключа.
Синтаксис: dictionary.pop(key [, value])
У этого метода два аргумента. Первый аргумент является обязательным и используется для указания ключа. Второй аргумент опционален. Он используется для установки значения по умолчанию, которое будет возвращено, если указанного в первом аргументе ключа не окажется в словаре.
Для лучшего понимания рассмотрим пример. Объявим словарь с именем dictvar , содержащий четыре элемента.
Сначала используем в качестве ключа Phone , а дополнительное значение указывать не будем.
# Определяем словарь dictvar = < 'Name': 'Sakib Al Hasan', 'Profession': 'Cricketer','Phone':'01866564234', 'Salary':300000 ># Выводим содержимое словаря print("\nThe content of the dictionary:\n",dictvar) # Читаем и удаляем значение по ключу, если ключ существует print("\nThe phone no is:", dictvar.pop('Phone')) # Выводим содержимое словаря после применения метода pop print("\nThe content of the dictionary after pop:\n",dictvar)
The content of the dictionary: The phone no is: 01866564234 The content of the dictionary after pop:
Ключ Phone в словаре есть. Поэтому при использовании метода pop() возвращается его значение, после чего этот элемент удаляется из словаря.
А теперь давайте применим метод pop() с тем же первым аргументом ( Phone ), но к нему добавим и второй, необязательный аргумент.
# Читаем значение ключа, которого нет в словаре print("\nThe phone no is:", dictvar.pop('Phone','01766345234'))
The phone no is: 01766345234
При втором вызове метода pop() мы использовали тот же первый аргумент, но такой элемент уже был удален из словаря предыдущим pop() . Поэтому возвращается значение, заданное в опциональном аргументе метода pop() .
Метод update()
update() используется для двух словарей. Если какой-либо ключ второго словаря совпадает с любым ключом первого словаря, то значение ключа из первого словаря будет обновлено значением этого же ключа из второго словаря. Ключи второго словаря, не совпадающие ни с одним ключом из первого словаря, добавляются в конец первого словаря вместе со своими значениями.
В качестве аргумента метод принимает dictionary2 , который будет использоваться для обновления dictionary1 .
Рассмотрим пример. В следующем скрипте объявлены два словаря: dict1 и dict2 . dict2 используется для обновления dict1 с помощью метода update() . dict1 печатается до и после использования метода update() .
dict1 = dict2 = print("The content of the first dictionary before update:\n", dict1) dict1.update(dict2) print("The content of the first dictionary after update:\n", dict1)
The content of the first dictionary before update: The content of the first dictionary after update:
У словарей dict1 и dict2 есть один общий ключ, это 01113456 . Поэтому значение этого ключа в dict1 обновляется значением из dict2 . Второй ключ dict2 не существует в dict1 , поэтому этот элемент добавляется в конец dict1 .
Метод copy()
copy() используется для создания копии словаря. Это полезно, когда нам нужно сохранить исходную копию словаря перед изменением.
Этот метод не принимает никаких аргументов.
Рассмотрим пример. В следующем скрипте dict1 копируется в dict2 . Обе переменные используют разную память. Таким образом, если вы измените какое-либо значение одного словаря, это не повлияет на другую копию словаря. Изменим одно из значений dict2 и выведем оба словаря.
dict1 = dict2 = dict1.copy() dict2['01118734'] = 3.99 print("The content of the original dictionary:\n", dict1) print("The content of the copied dictionary:\n", dict2)
Запустим наш код. Можно заметить, что изменения в dict2 не вызывают никаких изменений в dict1 .
The content of the original dictionary: The content of the copied dictionary:
Метод sorted()
sorted() используется в словаре только для сортировки ключей.
Метод принимает любой словарь в качестве аргумента и возвращает отсортированные ключи этого словаря.
Рассмотрим на примере. Объявим словарь с именем dictvar . Затем используем метод sorted() для сортировки его ключей и сохраним в переменной с именем sorted_key . Выведем значения этой переменной на экран.
dictvar = sorted_key = sorted(dictvar) print("The content of the sorted key:\n", sorted_key)
В результате запуска этого кода получим список отсортированных по возрастанию ключей.
Метод clear()
И финальный метод из нашей подборки топ-10 методов словарей в Python. Данный метод используется, чтобы убрать все элементы из словаря, очистить его.
clear() не принимает никакие аргументы и возвращает пустой словарь.
Как и в предыдущем примере, объявим словарь с именем dictvar . Затем применим к нему метод clear() . Для наглядности выведем на экран содержимое словаря до и после применения метода clear() .
dictvar = print("The content of the dictionary:\n", dictvar) dictvar.clear() print("The content of the dictionary:\n", dictvar)
The content of the dictionary: The content of the dictionary: <>
Мы получили пустой словарь.
Заключение
В этой статье мы рассказали про топ-10 методов словарей в Python и показали их работу на простых примерах. Надеемся, это поможет вам более эффективно работать со словарями.
Функция dictionary setdefault() в Python на примере
Метод Python setdefault() возвращает значение ключа (если ключ есть в словаре).
Что такое функция dictionary setdefault() в Python?
Dictionary setdefault() в Python — это встроенный метод, используемый для поиска значения ключа, если ключ присутствует в словаре. Если нет, он вставляет ключ со значением в словарь. Метод setdefault() возвращает значение элемента с указанным ключом.
Параметры
- dict_name — это имя словаря.
- key -> — это ключ, значение которого нужно искать, используя значение ключа.
- default_value -> Это необязательный параметр в методе setdefault(). Здесь хранится значение по умолчанию, заданное пользователем. Если значение не указано, то значением по умолчанию будет none.
Возвращаемое значение
Метод setdefault() может возвращать три типа значений:
- Value of the key: если ключ присутствует в словаре.
- None: Если ключ отсутствует в словаре, также не предоставляется значение по умолчанию.
- Default Value: если ключ отсутствует в словаре, предоставляется значение по умолчанию.
Пример кода
В приведенной выше программе мы объявили один словарь и распечатали его. После этого мы вызывали метод setdefault() только по ключу, которого нет в словаре.
Мы видим, что когда мы передали W ater в качестве ключа, значение было None, поскольку мы не указали значение по умолчанию.
С другой стороны, мы передали Hair в качестве ключа и Black в качестве значения по умолчанию в методе setdefault(), и мы видим, что окончательный словарь содержит Hair и Black в качестве ключа и значения.
Заключение
При инициализации словаря обычно выполняется проверка кода на наличие ключа, а затем создается ключ, если он не существует. Ту же задачу можно реализовать более лаконично, используя встроенный метод словаря setDefault().