{"id":45,"date":"2019-02-27T08:24:55","date_gmt":"2019-02-27T08:24:55","guid":{"rendered":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvaraarendus\/chapter\/sonastik\/"},"modified":"2020-07-22T14:04:13","modified_gmt":"2020-07-22T14:04:13","slug":"sonastik","status":"publish","type":"chapter","link":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/chapter\/sonastik\/","title":{"raw":"S\u00f5nastik","rendered":"S\u00f5nastik"},"content":{"raw":"<p class=\"vspace\">Oleme tuttavad j\u00e4rjenditega, mille puhul igal elemendil on indeks. Nii on n\u00e4iteks j\u00e4rjendi <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">a = [2, 4, 7]<\/code><\/code> puhul elemendi 2 indeks 0, elemendi 4 indeks on 1 ja elemendi 7 indeks on 2. Elemendi v\u00e4\u00e4rtuse saab k\u00e4tte indeksi j\u00e4rgi: <code>a[0]<\/code>, <code>a[1]<\/code> ja <code>a[2]<\/code>.<\/p>\n<p class=\"vspace\">Teatud olukordades oleks parem, et elemendi asukohta struktuuris ei m\u00e4\u00e4raks mitte j\u00e4rjekorranumber, vaid mingi muu v\u00e4\u00e4rtus. N\u00e4iteks v\u00f5iksime tekitada struktuuri, kus \"elementideks\" (v\u00e4\u00e4rtusteks) on inimeste vanused ja \"indeksiteks\" (v\u00f5tmeteks) nende inimeste nimed. Sel juhul saaksime n\u00e4iteks <code>vanused[\"Kersti\"]<\/code> v\u00e4\u00e4rtuseks 46 ja <code>vanused[\"J\u00fcri\"]<\/code> v\u00e4\u00e4rtuseks 38. Selline andmestruktuur on Pythonis t\u00e4iesti olemas ja selle nimi on <strong>s\u00f5nastik<\/strong>.<\/p>\n\n<div class=\"vspace\"><\/div>\n<div class=\"lrindent round\">\n\nS\u00f5nastik (ingl <em>dictionary<\/em>) on d\u00fcnaamilise (muutuva) pikkusega andmestruktuur, mille elemendid on erilised paarid. Nende paaride esimest liiget nimetatakse <strong>v\u00f5tmeks<\/strong> ja teist liiget <strong>v\u00e4\u00e4rtuseks<\/strong>. Koodis esitatakse s\u00f5nastik loogeliste sulgude <code>{<\/code> ja <code>}<\/code> vahel nii, et v\u00f5ti-v\u00e4\u00e4rtus paarid (<strong>kirjed<\/strong>) on komadega eraldatud. Paaride sees on v\u00f5ti ja v\u00e4\u00e4rtus eraldatud kooloniga.\n\n<\/div>\n<div>\n<div class=\"syntaxhighlighter nogutter python\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">&gt;&gt;&gt; vanused = {\"Kersti\": 46, \"J\u00fcri\": 38, \"Jevgeni\": 30, \"Mart\": 67}\n&gt;&gt;&gt; vanused[\"Kersti\"]\n46\n&gt;&gt;&gt; vanused[\"J\u00fcri\"]\n38<\/pre>\n<\/div>\n<\/div>\n<p class=\"vspace\">V\u00f5tmed ja v\u00e4\u00e4rtused v\u00f5ivad olla erinevat t\u00fc\u00fcpi. Meie n\u00e4ites olid v\u00f5tmed s\u00f5ned ja v\u00e4\u00e4rtused t\u00e4isarvud. S\u00f5nastiku v\u00e4\u00e4rtused saavad olla mistahes t\u00fc\u00fcpi, kuid v\u00f5tmed peavad tehnilistel p\u00f5hjustel olema mittemuteeritavat t\u00fc\u00fcpi. See t\u00e4hendab, et v\u00f5tmeteks sobivad n\u00e4iteks arvud, s\u00f5ned ja ennikud, aga ei sobi j\u00e4rjendid, hulgad ega teised s\u00f5nastikud.<\/p>\n<p class=\"vspace\">(Siinkohal v\u00f5ib lugeda <a href=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvaraarendus\/chapter\/lisalugemine-hulk\/\">hulkade lisamaterjali<\/a>)<\/p>\n\n<h3>Enesekontroll (1 \u00fclesanne)<\/h3>\n<div><code>[h5p id=\"15\"]<\/code><\/div>\n<div>\n<h2>S\u00f5nastikule andmete lisamine<\/h2>\n<\/div>\n<p class=\"vspace\">Kui tahame s\u00f5nastikku andmeid lisada, siis saame seda teha lihtsa omistamisega:<\/p>\n\n<div>\n<div class=\"syntaxhighlighter nogutter python\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">&gt;&gt;&gt; vanused[\"Margus\"] = 33\n&gt;&gt;&gt; vanused\n{'J\u00fcri': 38, 'Mart': 67, 'Jevgeni': 30, 'Kersti': 46, 'Margus': 33}<\/pre>\n<\/div>\n<\/div>\n<p class=\"vspace\">S\u00f5nastikus ei saa olla korduvaid v\u00f5tmeid, korduvaid v\u00e4\u00e4rtusi tohib olla. Kui p\u00fc\u00fcda lisada uut v\u00e4\u00e4rtust v\u00f5tmega, mis on juba s\u00f5nastikus olemas, siis eelnev v\u00e4\u00e4rtus kirjutatakse \u00fcle:<\/p>\n\n<div>\n<div class=\"syntaxhighlighter nogutter python\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">&gt;&gt;&gt; vanused[\"Jevgeni\"]\n30\n&gt;&gt;&gt; vanused[\"Jevgeni\"] = 31\n&gt;&gt;&gt; vanused[\"Jevgeni\"]\n31<\/pre>\n<\/div>\n<\/div>\n<p class=\"vspace\">S\u00f5nastikku kasutataksegi niimoodi, et otsitakse v\u00f5tme j\u00e4rgi v\u00e4\u00e4rtust. Vastupidi v\u00e4\u00e4rtuse j\u00e4rgi v\u00f5tit k\u00e4tte saada pole s\u00f5nastikust otseselt v\u00f5imalik.<\/p>\n\n<h3>Enesekontroll (1 \u00fclesanne)<\/h3>\n<div class=\"vspace\"><code>[h5p id=\"16\"]<\/code> <span id=\"test2-tog\" class=\"toggle\"> <\/span><\/div>\n<h2>S\u00f5nastiku l\u00e4bimine<\/h2>\n<div class=\"lrindent round\">\n\nS\u00f5nastikus on v\u00f5ti-v\u00e4\u00e4rtus paarid (kirjed) j\u00e4rjestamata. Seega ei saa nendele paaridele kuidagi indeksite kaudu ligi.\n<h3>S\u00f5nastiku l\u00e4bimine for-ts\u00fckliga<\/h3>\n<p class=\"vspace\">Tihti kasutatakse <code>for<\/code>-ts\u00fcklit s\u00f5nastiku peal nii, et igal ts\u00fckli sammul saab ts\u00fcklimuutuja v\u00e4\u00e4rtuseks j\u00e4rjekordse v\u00f5tme s\u00f5nastikust:<\/p>\n\n<div>\n<div class=\"syntaxhighlighter nogutter python\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">vanused = {\"Kersti\": 46, \"J\u00fcri\": 38, \"Jevgeni\": 30, \"Mart\": 67}\nfor voti in vanused:\n    print(voti)<\/pre>\n<\/div>\n<\/div>\n<p class=\"vspace\">Selle variandiga saame v\u00e4\u00e4rtusele ligi tavap\u00e4raselt: <code>vanused[voti]<\/code>. See on t\u00e4pselt analoogiline ts\u00fcklitele, mis t\u00f6\u00f6tasid j\u00e4rjendite indeksite peal.<\/p>\n\n<\/div>\n<h3 class=\"vspace\">S\u00f5nastiku suurus<\/h3>\n<p class=\"vspace\">S\u00f5nastiku kirjete arvu saab sarnaselt eelnevatele struktuuridele k\u00e4tte <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">len<\/code><\/code> funktsiooni abil. V\u00f5tme s\u00f5nastikku kuuluvust saab kontrollida <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">in<\/code> operaatoriga:<\/p>\n\n<div>\n<div class=\"syntaxhighlighter nogutter python\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">vanused = {\"Kersti\": 46, \"J\u00fcri\": 38, \"Jevgeni\": 30, \"Mart\": 67}\nkolmikud = (\"Sofia\", \"Maria\", \"Kersti\")\nfor nimi in kolmikud:\n    if nimi not in vanused:\n        vanused[nimi] = 13\n \nprint(vanused)<\/pre>\n<\/div>\n<\/div>\n<p class=\"vspace\">See programm lisas s\u00f5nastikku uusi kirjeid ainult siis, kui need olemasolevat v\u00e4\u00e4rtust \u00fcle ei kirjuta.<\/p>\n\n<h3>Kirjete kustutamine s\u00f5nastikust<\/h3>\n<p class=\"vspace\">S\u00f5nastikust saab kirjeid kustutada <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">del<\/code><\/code> operaatori abil:<\/p>\n\n<div>\n<div class=\"syntaxhighlighter nogutter python\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">&gt;&gt;&gt; vanused = {\"Kersti\": 46, \"J\u00fcri\": 38, \"Jevgeni\": 30, \"Mart\": 67}\n&gt;&gt;&gt; del vanused[\"J\u00fcri\"]\n&gt;&gt;&gt; vanused\n{'Mart': 67, 'Jevgeni': 30, 'Kersti': 46}<\/pre>\n<div class=\"lrindent round\">\n<h3>S\u00f5nastik paaride hulgana<\/h3>\n<\/div>\n(Siinkohal v\u00f5ib lugeda <a href=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvaraarendus\/chapter\/lisalugemine-hulk\/\">hulkade lisamaterjali<\/a>)\n<p class=\"vspace\">S\u00f5nastike kirjetest saab <code>for<\/code>-ts\u00fckliga \u00fcle k\u00e4ia niimoodi:<\/p>\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">vanused = {\"Kersti\": 46, \"J\u00fcri\": 38, \"Jevgeni\": 30, \"Mart\": 67}\nfor voti, vaartus in vanused.items():\n    print(voti, vaartus)<\/pre>\n<p class=\"vspace\">Siin <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">vanused.items()<\/code> tagastab hulga t\u00fc\u00fcpi objekti, mis koosneb paaridest (ennikutest), kus esimesel kohal on v\u00f5ti ja teisel sellele vastav v\u00e4\u00e4rtus. Ts\u00fckli sama sammu ajal saame seega kasutada nii v\u00f5tit kui ka vastavat v\u00e4\u00e4rtust.<\/p>\n\n<\/div>\n<\/div>","rendered":"<p class=\"vspace\">Oleme tuttavad j\u00e4rjenditega, mille puhul igal elemendil on indeks. Nii on n\u00e4iteks j\u00e4rjendi <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">a = [2, 4, 7]<\/code><\/code> puhul elemendi 2 indeks 0, elemendi 4 indeks on 1 ja elemendi 7 indeks on 2. Elemendi v\u00e4\u00e4rtuse saab k\u00e4tte indeksi j\u00e4rgi: <code>a[0]<\/code>, <code>a[1]<\/code> ja <code>a[2]<\/code>.<\/p>\n<p class=\"vspace\">Teatud olukordades oleks parem, et elemendi asukohta struktuuris ei m\u00e4\u00e4raks mitte j\u00e4rjekorranumber, vaid mingi muu v\u00e4\u00e4rtus. N\u00e4iteks v\u00f5iksime tekitada struktuuri, kus &#8220;elementideks&#8221; (v\u00e4\u00e4rtusteks) on inimeste vanused ja &#8220;indeksiteks&#8221; (v\u00f5tmeteks) nende inimeste nimed. Sel juhul saaksime n\u00e4iteks <code>vanused[\"Kersti\"]<\/code> v\u00e4\u00e4rtuseks 46 ja <code>vanused[\"J\u00fcri\"]<\/code> v\u00e4\u00e4rtuseks 38. Selline andmestruktuur on Pythonis t\u00e4iesti olemas ja selle nimi on <strong>s\u00f5nastik<\/strong>.<\/p>\n<div class=\"vspace\"><\/div>\n<div class=\"lrindent round\">\n<p>S\u00f5nastik (ingl <em>dictionary<\/em>) on d\u00fcnaamilise (muutuva) pikkusega andmestruktuur, mille elemendid on erilised paarid. Nende paaride esimest liiget nimetatakse <strong>v\u00f5tmeks<\/strong> ja teist liiget <strong>v\u00e4\u00e4rtuseks<\/strong>. Koodis esitatakse s\u00f5nastik loogeliste sulgude <code>{<\/code> ja <code>}<\/code> vahel nii, et v\u00f5ti-v\u00e4\u00e4rtus paarid (<strong>kirjed<\/strong>) on komadega eraldatud. Paaride sees on v\u00f5ti ja v\u00e4\u00e4rtus eraldatud kooloniga.<\/p>\n<\/div>\n<div>\n<div class=\"syntaxhighlighter nogutter python\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">&gt;&gt;&gt; vanused = {\"Kersti\": 46, \"J\u00fcri\": 38, \"Jevgeni\": 30, \"Mart\": 67}\n&gt;&gt;&gt; vanused[\"Kersti\"]\n46\n&gt;&gt;&gt; vanused[\"J\u00fcri\"]\n38<\/pre>\n<\/div>\n<\/div>\n<p class=\"vspace\">V\u00f5tmed ja v\u00e4\u00e4rtused v\u00f5ivad olla erinevat t\u00fc\u00fcpi. Meie n\u00e4ites olid v\u00f5tmed s\u00f5ned ja v\u00e4\u00e4rtused t\u00e4isarvud. S\u00f5nastiku v\u00e4\u00e4rtused saavad olla mistahes t\u00fc\u00fcpi, kuid v\u00f5tmed peavad tehnilistel p\u00f5hjustel olema mittemuteeritavat t\u00fc\u00fcpi. See t\u00e4hendab, et v\u00f5tmeteks sobivad n\u00e4iteks arvud, s\u00f5ned ja ennikud, aga ei sobi j\u00e4rjendid, hulgad ega teised s\u00f5nastikud.<\/p>\n<p class=\"vspace\">(Siinkohal v\u00f5ib lugeda <a href=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvaraarendus\/chapter\/lisalugemine-hulk\/\">hulkade lisamaterjali<\/a>)<\/p>\n<h3>Enesekontroll (1 \u00fclesanne)<\/h3>\n<div><code><\/p>\n<div id=\"h5p-15\">\n<div class=\"h5p-iframe-wrapper\"><iframe id=\"h5p-iframe-15\" class=\"h5p-iframe\" data-content-id=\"15\" style=\"height:1px\" src=\"about:blank\" frameBorder=\"0\" scrolling=\"no\" title=\"andmestruktuurid-1-1-\u00fcksk\u00fcs\"><\/iframe><\/div>\n<\/div>\n<p><\/code><\/div>\n<div>\n<h2>S\u00f5nastikule andmete lisamine<\/h2>\n<\/div>\n<p class=\"vspace\">Kui tahame s\u00f5nastikku andmeid lisada, siis saame seda teha lihtsa omistamisega:<\/p>\n<div>\n<div class=\"syntaxhighlighter nogutter python\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">&gt;&gt;&gt; vanused[\"Margus\"] = 33\n&gt;&gt;&gt; vanused\n{'J\u00fcri': 38, 'Mart': 67, 'Jevgeni': 30, 'Kersti': 46, 'Margus': 33}<\/pre>\n<\/div>\n<\/div>\n<p class=\"vspace\">S\u00f5nastikus ei saa olla korduvaid v\u00f5tmeid, korduvaid v\u00e4\u00e4rtusi tohib olla. Kui p\u00fc\u00fcda lisada uut v\u00e4\u00e4rtust v\u00f5tmega, mis on juba s\u00f5nastikus olemas, siis eelnev v\u00e4\u00e4rtus kirjutatakse \u00fcle:<\/p>\n<div>\n<div class=\"syntaxhighlighter nogutter python\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">&gt;&gt;&gt; vanused[\"Jevgeni\"]\n30\n&gt;&gt;&gt; vanused[\"Jevgeni\"] = 31\n&gt;&gt;&gt; vanused[\"Jevgeni\"]\n31<\/pre>\n<\/div>\n<\/div>\n<p class=\"vspace\">S\u00f5nastikku kasutataksegi niimoodi, et otsitakse v\u00f5tme j\u00e4rgi v\u00e4\u00e4rtust. Vastupidi v\u00e4\u00e4rtuse j\u00e4rgi v\u00f5tit k\u00e4tte saada pole s\u00f5nastikust otseselt v\u00f5imalik.<\/p>\n<h3>Enesekontroll (1 \u00fclesanne)<\/h3>\n<div class=\"vspace\"><code><\/p>\n<div id=\"h5p-16\">\n<div class=\"h5p-iframe-wrapper\"><iframe id=\"h5p-iframe-16\" class=\"h5p-iframe\" data-content-id=\"16\" style=\"height:1px\" src=\"about:blank\" frameBorder=\"0\" scrolling=\"no\" title=\"andmestruktuurid-1-2-\u00fcksk\u00fcs\"><\/iframe><\/div>\n<\/div>\n<p><\/code> <span id=\"test2-tog\" class=\"toggle\"> <\/span><\/div>\n<h2>S\u00f5nastiku l\u00e4bimine<\/h2>\n<div class=\"lrindent round\">\n<p>S\u00f5nastikus on v\u00f5ti-v\u00e4\u00e4rtus paarid (kirjed) j\u00e4rjestamata. Seega ei saa nendele paaridele kuidagi indeksite kaudu ligi.<\/p>\n<h3>S\u00f5nastiku l\u00e4bimine for-ts\u00fckliga<\/h3>\n<p class=\"vspace\">Tihti kasutatakse <code>for<\/code>-ts\u00fcklit s\u00f5nastiku peal nii, et igal ts\u00fckli sammul saab ts\u00fcklimuutuja v\u00e4\u00e4rtuseks j\u00e4rjekordse v\u00f5tme s\u00f5nastikust:<\/p>\n<div>\n<div class=\"syntaxhighlighter nogutter python\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">vanused = {\"Kersti\": 46, \"J\u00fcri\": 38, \"Jevgeni\": 30, \"Mart\": 67}\nfor voti in vanused:\n    print(voti)<\/pre>\n<\/div>\n<\/div>\n<p class=\"vspace\">Selle variandiga saame v\u00e4\u00e4rtusele ligi tavap\u00e4raselt: <code>vanused[voti]<\/code>. See on t\u00e4pselt analoogiline ts\u00fcklitele, mis t\u00f6\u00f6tasid j\u00e4rjendite indeksite peal.<\/p>\n<\/div>\n<h3 class=\"vspace\">S\u00f5nastiku suurus<\/h3>\n<p class=\"vspace\">S\u00f5nastiku kirjete arvu saab sarnaselt eelnevatele struktuuridele k\u00e4tte <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">len<\/code><\/code> funktsiooni abil. V\u00f5tme s\u00f5nastikku kuuluvust saab kontrollida <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">in<\/code> operaatoriga:<\/p>\n<div>\n<div class=\"syntaxhighlighter nogutter python\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">vanused = {\"Kersti\": 46, \"J\u00fcri\": 38, \"Jevgeni\": 30, \"Mart\": 67}\nkolmikud = (\"Sofia\", \"Maria\", \"Kersti\")\nfor nimi in kolmikud:\n    if nimi not in vanused:\n        vanused[nimi] = 13\n \nprint(vanused)<\/pre>\n<\/div>\n<\/div>\n<p class=\"vspace\">See programm lisas s\u00f5nastikku uusi kirjeid ainult siis, kui need olemasolevat v\u00e4\u00e4rtust \u00fcle ei kirjuta.<\/p>\n<h3>Kirjete kustutamine s\u00f5nastikust<\/h3>\n<p class=\"vspace\">S\u00f5nastikust saab kirjeid kustutada <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">del<\/code><\/code> operaatori abil:<\/p>\n<div>\n<div class=\"syntaxhighlighter nogutter python\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">&gt;&gt;&gt; vanused = {\"Kersti\": 46, \"J\u00fcri\": 38, \"Jevgeni\": 30, \"Mart\": 67}\n&gt;&gt;&gt; del vanused[\"J\u00fcri\"]\n&gt;&gt;&gt; vanused\n{'Mart': 67, 'Jevgeni': 30, 'Kersti': 46}<\/pre>\n<div class=\"lrindent round\">\n<h3>S\u00f5nastik paaride hulgana<\/h3>\n<\/div>\n<p>(Siinkohal v\u00f5ib lugeda <a href=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvaraarendus\/chapter\/lisalugemine-hulk\/\">hulkade lisamaterjali<\/a>)<\/p>\n<p class=\"vspace\">S\u00f5nastike kirjetest saab <code>for<\/code>-ts\u00fckliga \u00fcle k\u00e4ia niimoodi:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">vanused = {\"Kersti\": 46, \"J\u00fcri\": 38, \"Jevgeni\": 30, \"Mart\": 67}\nfor voti, vaartus in vanused.items():\n    print(voti, vaartus)<\/pre>\n<p class=\"vspace\">Siin <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">vanused.items()<\/code> tagastab hulga t\u00fc\u00fcpi objekti, mis koosneb paaridest (ennikutest), kus esimesel kohal on v\u00f5ti ja teisel sellele vastav v\u00e4\u00e4rtus. Ts\u00fckli sama sammu ajal saame seega kasutada nii v\u00f5tit kui ka vastavat v\u00e4\u00e4rtust.<\/p>\n<\/div>\n<\/div>\n","protected":false},"author":3,"menu_order":2,"template":"","meta":{"pb_show_title":"on","pb_short_title":"","pb_subtitle":"","pb_authors":[],"pb_section_license":""},"chapter-type":[],"contributor":[],"license":[],"class_list":["post-45","chapter","type-chapter","status-publish","hentry"],"part":42,"_links":{"self":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/45","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/users\/3"}],"version-history":[{"count":2,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/45\/revisions"}],"predecessor-version":[{"id":88,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/45\/revisions\/88"}],"part":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/parts\/42"}],"metadata":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/45\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/media?parent=45"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapter-type?post=45"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/contributor?post=45"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/license?post=45"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}