Питхон нуди многе уграђене структуре података, као што су листе, корице и речници, за ефикасно чување и управљање подацима. Речници пружају једноставан начин за чување података као парова кључ / вредност. Кључ делује као индекс и користи се за преузимање података. Кључеви би требало да буду јединствени и непроменљиви у целом речнику. Кључеви су углавном низови и цели бројеви, мада вредност кључа може бити било које врсте, као што је цео број, низ, број са покретном тачком или сложени број. У међувремену, речник може садржати колекцију, попут листе, корице или неке друге врсте речника. Речник на Питхону креира се помоћу пара коврчавих заграда, у којима је сваки пар кључ / вредност одвојен зарезом.
Шта ако покушате да приступите или измените одређени кључ у речнику који не постоји? Па, у овом случају, Питхон тумач ће покренути грешку „КеиЕррор“ и прекинути извршење програма.
Погледајмо пример грешке „КеиЕррор“.
#стварање речниками_дицт = 1: "Здраво", 2: "Добродошли", 3: "ЛинукХинт"
# приступ кључу који не постоји
ми_дицт [4]
Оутпут
Да би решио ову грешку, Питхон пружа дефаултдицт тип, класу речника који се може наћи у модулу цоллецтион. Овај чланак детаљно покрива подразумевану пресуду за Питхон.
Објашњење и примери неправомоћне пресуде
Задана пресуда је алтернатива Питхон речнику. Враћа објекте типа речника. Основна пресуда је поткласа диктата. У случају да кључ недостаје, уместо да се појави грешка „КеиЕррор“, задата вредност је дата за непостојећи кључ. Синтакса задане пресуде је следећа:
дефаултдицт (дефаулт_фацтори)Функција дефаултдицт узима аргумент дефаулт_фацтори као аргумент. Функција дефаулт_фацтори враћа подразумевану вредност за дефинисану дефаултдицт. Ако покушамо да приступимо или изменимо кључ који недостаје, тада функција дефаулт_фацтори враћа подразумевану вредност као резултат. Ако функција дефаулт_фацтори недостаје, тада ће дефаултдиц покренути грешку „КеиЕррор“ ако недостају кључеви.
Прво ћемо имплементирати дефаултдиц у нашу Питхон скрипту за приступ постојећим и недостајућим кључевима.
#импорт дефаултдицт из модула за прикупљањеиз колекција импорт дефаултдицт
#дефинисање функције за враћање подразумеване вредности
деф ми_фунц ():
принт ("Кључ није дефинисан")
#цреатинг дефуалтдицт
# прослеђивање ми_фунц () као аргумента за просуђивање
ми_дицт = дефаултдицт (ми_фунц)
#дефинисање кључева и вредности
ми_дицт [1] = "Здраво"
ми_дицт [2] = "Добродошли"
ми_дицт [3] = "ЛинукХинт"
# приступ вредностима помоћу кључева
испис (ми_дицт [1])
испис (ми_дицт [2])
испис (ми_дицт [3])
# приступ недостајућем или недефинисаном кључу
ми_дицт [4]
Оутпут
Тастер [4] недостаје. Дакле, уместо да изазове грешку „КеиЕррор“, она позива функцију дефаулт_фацтори, која враћа подразумевану вредност.
Ламбда функција, позната као анонимна функција, такође се може користити као параметар дефаулт_фацтори.
Даље ћемо имплементирати ламбда функцију и проследити је као аргумент подразумеваној пресуди.
#импорт дефаултдицт из модула за прикупљањеиз колекција импорт дефаултдицт
#цреатинг дефуалтдицт
# пролазак Ламнда функције као аргумент за пресуду
ми_дицт = дефаултдицт (ламбда: "Кључ није дефинисан")
#дефинисање кључева и вредности
ми_дицт [1] = "Здраво"
ми_дицт [2] = "Добродошли"
ми_дицт [3] = "ЛинукХинт"
# приступ вредностима помоћу кључева
испис (ми_дицт [1])
испис (ми_дицт [2])
испис (ми_дицт [3])
# приступ недостајућем или недефинисаном кључу
испис (ми_дицт [4])
Дефаултдицт позива дефаулт_фацтори да пружи подразумевану вредност, али функција __миссинг () __ даје подразумевану вредност. Функција __миссинг () __ је уграђена функција у Питхону која узима параметар дефаулт_фацтори као аргумент. Ако параметар дефаулт_фацтори није дефинисан, функција __миссинг () __ доводи до грешке „КеиЕррор“.
Овде ћемо користити функцију __миссинг () __ у нашој Питхон скрипти.
#импорт дефаултдицт из модула за прикупљањеиз колекција импорт дефаултдицт
#дефинисање функције за враћање подразумеване вредности
деф ми_фунц ():
принт ("Кључ није дефинисан")
#цреатинг дефуалтдицт
# прослеђивање ми_фунц () као аргумента за пресуду
ми_дицт = дефаултдицт (ми_фунц)
#дефинисање кључева и вредности
ми_дицт [1] = "ЛинукХинт"
# приступ вредностима помоћу кључева
испис (ми_дицт [1])
# приступ недостајућем или недефинисаном кључу
ми_дицт.__ недостаје __ (2)
Оутпут
Класе листа и инт могу се такође користити као дефаулт_фацтори параметри са дефаултдицтом.
Наведи као дефаулт_фацтори параметар
Задана пресуда се креира са вредностима листе када се класи листе проследи дефаулт_фацтори параметар.
#импорт дефаултдицт из модула за прикупљањеиз колекција импорт дефаултдицт
# дефинисање дефаулт пресуде
# предавање класе листе као дефаулт_фацтори
ми_дицт = дефаултдицт (листа)
за и у опсегу (7):
ми_дицт [и].додати (и)
# штампање вредности
испис (ми_дицт)
Оутпут
Излаз приказује вредности на листи. Као што видите, створена је задана пресуда која садржи кључ и вредности.
Цијели бројеви као дефаулт_фацтори параметар
Ако проследимо класу инт као дефаулт_фацтори параметар, тада можемо створити дефаултдицт који садржи само целе бројеве. Направићемо листу целих бројева, а затим ћемо је сачувати у подразумеваној пресуди.
#импорт дефаултдицт из модула за прикупљањеиз колекција импорт дефаултдицт
# дефинисање задате пресуде
# прослеђивање класе инт као дефаулт_фацтори
ми_дицт = дефаултдицт (инт)
#креирање листе целих бројева
ми_лист = [1,2,3]
јер сам на ми_лист:
ми_дицт [и] + = 1
# штампање вредности
испис (ми_дицт)
Оутпут
У датом излазу, целобројне вредности испред двотачке (:) су кључеви, док су целобројне вредности после двотачке вредности.
Закључак
Дафуалтдицт је класа налик речнику присутна у модулу збирке. Ради као Питхон речник, али не покреће „КеиЕррор“ када кључ није пронађен. Овај чланак детаљно објашњава пресуду са разним примерима.