Что такое setdefault питон

Топ-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».

Читайте также:  Html text property name

Следующий пример показывает использование метода 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 , содержащий четыре элемента.

Читайте также:  Значение языка программирования java

Сначала используем в качестве ключа 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() используется в словаре только для сортировки ключей.

Читайте также:  Opening windows with javascript

Метод принимает любой словарь в качестве аргумента и возвращает отсортированные ключи этого словаря.

Рассмотрим на примере. Объявим словарь с именем 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() может возвращать три типа значений:

  1. Value of the key: если ключ присутствует в словаре.
  2. None: Если ключ отсутствует в словаре, также не предоставляется значение по умолчанию.
  3. Default Value: если ключ отсутствует в словаре, предоставляется значение по умолчанию.

Пример кода

В приведенной выше программе мы объявили один словарь и распечатали его. После этого мы вызывали метод setdefault() только по ключу, которого нет в словаре.

Мы видим, что когда мы передали W ater в качестве ключа, значение было None, поскольку мы не указали значение по умолчанию.

С другой стороны, мы передали Hair в качестве ключа и Black в качестве значения по умолчанию в методе setdefault(), и мы видим, что окончательный словарь содержит Hair и Black в качестве ключа и значения.

Заключение

При инициализации словаря обычно выполняется проверка кода на наличие ключа, а затем создается ключ, если он не существует. Ту же задачу можно реализовать более лаконично, используя встроенный метод словаря setDefault().

Источник

Оцените статью