Речник

Листе нам дају могућност да организујемо податке за које је познат неки редослед и у којима сваки податак има свој редни број (на пример, листа жеља, листа ученика у одељењу…) и приступ елементима листе врши се на основу њиховог индекса (редног броја, тј. позиције).

Међутим, често подаци представљају неко пресликавање у којем на основу датог кључа желимо да приступимо вредности која је придружена том кључу. На пример, ценовник у продавници имену артикла придружује његову цену. У тим ситуацијама уместо листе много је боље користити речнике.

У овој лекцији правићемо програме за различите функционалности касе у продавници користећи речник.

Коришћење речника

Желимо да направимо колекцију која чува податке о томе колико кошта који артикал у продавници. За то користимо речник.

Речник у програмском језику пајтон правимо користећи витичасте заграде { и } између којих наводимо парове кључ : вредност , као у примеру:

Кључ може бити текст или број, али ће у нашим примерима обично бити текст. Исти кључ не сме се појављивати више пута у истом речнику.

Вредност може бити било ког типа.

Овакав начин чувања података нам је погодан како бисмо једноставно сазнали колико кошта који производ, на пример колико кошта вода, а колико млеко:

Користећи for петљу можемо да пролазимо кроз кључеве речнике, односно артикле у ценовнику:

Измена вредности

Вредност за неки кључ, односно цену артикла у ценовнику, можемо изменити на следећи начин:

На сличан начин можемо додати артикал који претходно нисмо имали у ценовнику:

Проналажење вредности

Показали смо како можемо исписати вредност за један кључ, односно цену једног артикла:

Међутим, ако покушамо да испишемо вредност за кључ који није у речнику, доћи ће до грешке:

Зато је потребно да пре него што испишемо цену артикла испитамо да ли га уопште имамо у понуди. За то користимо кључну реч in:

Примери

Напиши програм који чита назив и цену артикла и додаје га у ценовник из претходних примера, односно ажурира његову цену ако је тај артикал већ био у понуди.

Напиши програм који чита назив и количину артикла који купац жели да купи и исписује укупан износ.

Напиши програм који пита корисника да ли жели да испише понуду у маркету, измени цену неког артикла, или испише износ неке куповине.

Комбиновањем примера из курса можемо написати следећи програм:

Овај код је добар, али није баш прегледан. У следећој глави показаћемо како га можемо изменити да постане читљивији.