Питхон

Питхон дефаултдицт

Питхон дефаултдицт

Питхон нуди многе уграђене структуре података, као што су листе, корице и речници, за ефикасно чување и управљање подацима. Речници пружају једноставан начин за чување података као парова кључ / вредност. Кључ делује као индекс и користи се за преузимање података. Кључеви би требало да буду јединствени и непроменљиви у целом речнику. Кључеви су углавном низови и цели бројеви, мада вредност кључа може бити било које врсте, као што је цео број, низ, број са покретном тачком или сложени број. У међувремену, речник може садржати колекцију, попут листе, корице или неке друге врсте речника. Речник на Питхону креира се помоћу пара коврчавих заграда, у којима је сваки пар кључ / вредност одвојен зарезом.

Шта ако покушате да приступите или измените одређени кључ у речнику који не постоји? Па, у овом случају, Питхон тумач ће покренути грешку „КеиЕррор“ и прекинути извршење програма.

Погледајмо пример грешке „КеиЕррор“.

#стварање речника
ми_дицт = 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
# штампање вредности
испис (ми_дицт)

Оутпут

У датом излазу, целобројне вредности испред двотачке (:) су кључеви, док су целобројне вредности после двотачке вредности.

Закључак

Дафуалтдицт је класа налик речнику присутна у модулу збирке. Ради као Питхон речник, али не покреће „КеиЕррор“ када кључ није пронађен. Овај чланак детаљно објашњава пресуду са разним примерима.

Како користити АутоКеи за аутоматизацију Линук игара
АутоКеи је услужни програм за аутоматизацију радне површине за Линук и Кс11, програмиран на Питхон 3, ГТК и Кт. Користећи његову скриптну и МАЦРО функ...
Како приказати бројач ФПС-а у Линук играма
Линук гаминг добио је велики потицај када је Валве најавио Линук подршку за Стеам клијент и њихове игре 2012. године. Од тада су многе ААА и индие игр...
Како преузети и играти Сид Меиер'с Цивилизатион ВИ на Линук-у
Увод у игру Цивилизатион 6 је модерни поглед на класични концепт представљен у серији игара Аге оф Емпирес. Идеја је била прилично једноставна; започе...