Python

Вирок за замовчуванням Python

Вирок за замовчуванням Python

Python пропонує безліч вбудованих структур даних, таких як списки, кортежі та словники, для ефективного збереження та управління даними. Словники забезпечують простий спосіб збереження даних як пар ключ-значення. Ключ діє як індекс і використовується для отримання даних. Ключі повинні бути унікальними та незмінними у всьому словнику. Ключі - це, в основному, рядки та цілі числа, хоча значення ключа може бути будь-якого типу, наприклад, ціле число, рядок, число з плаваючою комою або складне число. Тим часом словник може містити колекцію, наприклад, список, кортеж або інший тип словника. Словник на Python створюється за допомогою пари фігурних дужок, в яких кожна пара ключ-значення відокремлюється комою.

Що робити, якщо ви спробуєте отримати доступ або змінити певний ключ у словнику, який не існує? Ну, у цьому випадку інтерпретатор Python викличе помилку “KeyError” і припинить виконання програми.

Давайте розглянемо приклад помилки “KeyError”.

#створення словника
my_dict = 1: "Привіт", 2: "Ласкаво просимо", 3: "LinuxHint"
# доступ до ключа, який не існує
my_dict [4]

Вихідні дані

Щоб обробити цю помилку, Python надає тип вироку за замовчуванням, клас словника, який можна знайти в модулі колекцій. У цій статті докладно висвітлено вирок за замовчуванням Python.

Пояснення та приклади вирок за замовчуванням

Вирок за замовчуванням є альтернативою словнику Python. Він повертає об’єкти типу словника. Дефолт - це підклас дикту. У випадку відсутнього ключа замість того, щоб викликати помилку “KeyError”, для неіснуючого ключа надається значення за замовчуванням. Синтаксис defaultdict виглядає так:

defaultdict (default_factory)

Функція defaultdict приймає в якості аргументу параметр default_factory. Функція default_factory повертає значення за замовчуванням для визначеного вироку за замовчуванням. Якщо ми намагаємося отримати доступ або змінити ключ, який відсутній, тоді функція default_factory повертає значення за замовчуванням як результат. Якщо функція default_factory відсутня, тоді defaultdic викличе помилку “KeyError”, якщо відсутні будь-які ключі.

По-перше, ми застосуємо defaultdic у нашому скрипті Python для доступу як до існуючих, так і до відсутніх ключів.

#import defaultdict з модуля збору
з колекцій імпортувати defaultdict
#defining функції для повернення значення за замовчуванням
def my_func ():
print ("Ключ не визначений")
#create a defualtdict
# передаючи my_func () як аргумент до рішення за замовчуванням
my_dict = defaultdict (my_func)
#defining ключі та значення
my_dict [1] = "Привіт"
my_dict [2] = "Ласкаво просимо"
my_dict [3] = "Підказка Linux"
# доступ до значень за допомогою ключів
друк (my_dict [1])
друк (my_dict [2])
друк (my_dict [3])
# доступ до відсутнього або невизначеного ключа
my_dict [4]

Вихідні дані

[4] - відсутня клавіша. Отже, замість того, щоб викликати помилку “KeyError”, вона викликає функцію default_factory, яка повертає значення за замовчуванням.


Лямбда-функція, відома як анонімна функція, також може використовуватися як параметр default_factory.

Далі ми реалізуємо лямбда-функцію та передамо її як аргумент за замовчуванням.

#import defaultdict з модуля збору
з колекцій імпортувати defaultdict
#create a defualtdict
# передача функції Ламнда як аргумент вирок за замовчуванням
my_dict = defaultdict (лямбда: "Ключ не визначений")
#defining ключі та значення
my_dict [1] = "Привіт"
my_dict [2] = "Ласкаво просимо"
my_dict [3] = "LinuxHint"
# доступ до значень за допомогою ключів
друк (my_dict [1])
друк (my_dict [2])
друк (my_dict [3])
# доступ до відсутнього або невизначеного ключа
друк (my_dict [4])

Defaultdict викликає default_factory, щоб вказати значення за замовчуванням, але функція __missing () __ надає значення за замовчуванням. Функція __missing () __ - це вбудована функція в Python, яка приймає параметр default_factory як аргумент. Якщо параметр default_factory не визначений, функція __missing () __ викликає помилку “KeyError”.

Тут ми будемо використовувати функцію __missing () __ у нашому скрипті Python.

#import defaultdict з модуля збору
з колекцій імпортувати defaultdict
#defining функції для повернення значення за замовчуванням
def my_func ():
print ("Ключ не визначений")
#create a defualtdict
# передаючи my_func () як аргумент до рішення за замовчуванням
my_dict = defaultdict (my_func)
#defining ключі та значення
my_dict [1] = "LinuxHint"
# доступ до значень за допомогою ключів
друк (my_dict [1])
# доступ до відсутнього або невизначеного ключа
my_dict.__відсутні __ (2)

Вихідні дані

Класи list та int також можуть використовуватися як параметри default_factory із defaultdict.

Перерахувати як параметр за замовчуванням

Вирок за замовчуванням створюється зі значеннями списку, коли класу списку передається параметр default_factory.

#import defaultdict з модуля збору
з колекцій імпортувати defaultdict
# визначаючи вирок за замовчуванням
# передавання класу списку як заводу за замовчуванням
my_dict = defaultdict (список)
для i в діапазоні (7):
мій_вирок [i].додати (i)
#друк значень
друк (my_dict)

Вихідні дані

На виході відображаються значення у списку. Як бачите, було створено вирок за замовчуванням, який містить ключ і значення.

Цілі числа як параметр default_factory

Якщо ми передаємо клас int як параметр default_factory, тоді ми можемо створити вирок за замовчуванням, який містить лише цілі числа. Ми створимо список цілих чисел, а потім збережемо його за замовчуванням.

#import defaultdict з модуля збору
з колекцій імпортувати defaultdict
# визначаючи вирок за замовчуванням
# передавання класу int як default_factory
my_dict = defaultdict (int)
#створення списку цілих чисел
my_list = [1,2,3]
для я в my_list:
my_dict [i] + = 1
#друк значень
друк (my_dict)

Вихідні дані

У даному висновку цілі значення перед двокрапкою (:) є ключами, тоді як цілі значення після двокрапки - значення.

Висновок

Dafualtdict - це словниковий клас, присутній у модулі колекцій. Він працює як словник Python, але не викликає “KeyError”, коли ключ не знайдений. Ця стаття детально пояснює рішення про невиконання зобов'язань на різних прикладах.

Кращі програми для картографування геймпадів для Linux
Якщо ви любите грати в ігри на Linux із геймпадом замість типової системи введення клавіатури та миші, є кілька корисних програм для вас. Багато ігор ...
Корисні інструменти для геймерів Linux
Якщо ви любите грати в ігри на Linux, швидше за все, ви, можливо, використовували додатки та утиліти, такі як Wine, Lutris та OBS Studio, щоб покращит...
HD Remastered Games для Linux, які раніше ніколи не випускали Linux
Багато розробників і видавців ігор випускають HD-ремастер старих ігор, щоб продовжити життя франшизи. Будь ласка, шанувальники просять сумісність із с...