{"id":129,"date":"2018-12-19T14:51:53","date_gmt":"2018-12-19T14:51:53","guid":{"rendered":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/?post_type=chapter&#038;p=129"},"modified":"2019-04-08T16:27:37","modified_gmt":"2019-04-08T16:27:37","slug":"jarjend","status":"publish","type":"chapter","link":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/chapter\/jarjend\/","title":{"raw":"J\u00e4rjend","rendered":"J\u00e4rjend"},"content":{"raw":"Selles peat\u00fckis tutvume j\u00e4rjendiga, mis on elementide j\u00e4rjestatud kogum.\r\n<h2>J\u00e4rjend (<em>list<\/em>)<\/h2>\r\nSeni oleme programmides hoidnud andmeid eraldi muutujates: iga arvu v\u00f5i s\u00f5ne oleme salvestanud teistest eraldi. Tihtipeale on kasulik paigutada andmeid \u00fchisesse andmestruktuuri, mis muudab nende kasutamise lihtsamaks. Pythonis on \u00fcheks selliseks struktuuriks <strong>j\u00e4rjend<\/strong> (inglise keeles <em><strong>list<\/strong><\/em>). (Arvesta sellega, et erinevates programmeerimiskeeltes ja \u00f5ppematerjalides v\u00f5ivad terminid erineda.)\r\n\r\nJ\u00e4rjend koosneb elementidest, mis loetletakse nurksulgudes \u00fcksteisest komadega eraldatult. N\u00e4iteks on kaks j\u00e4rjendit\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">n\u00e4dalap\u00e4evad = [\"esmasp\u00e4ev\", \"teisip\u00e4ev\", \"kolmap\u00e4ev\", \"neljap\u00e4ev\", \"reede\", \"laup\u00e4ev\", \"p\u00fchap\u00e4ev\"]\r\ntemperatuurid = [-4, 2, 6, 4, 4]<\/pre>\r\nJ\u00e4rjendis v\u00f5ib esineda korduvaid elemente, n\u00e4iteks j\u00e4rjendis <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">temperatuurid<\/code> on element v\u00e4\u00e4rtusega <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">4<\/code><\/code> kaks korda.\r\n\r\nEeltoodud j\u00e4rjendites on esimeses ainult s\u00f5ned ja teises ainult t\u00e4isarvud. Tegelikult v\u00f5ivad Pythonis \u00fche j\u00e4rjendi elemendid olla ka erinevat t\u00fc\u00fcpi, aga tavaliselt me seda v\u00f5imalust ei kasuta.\r\n<p class=\"vspace\">Vaatame, mis t\u00fc\u00fcpi n\u00e4itab Python ise muutuja <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">temperatuurid<\/code><\/code> puhul:<\/p>\r\n\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">temperatuurid = [-4, 2, 6, 4, 4]\r\nprint(type(temperatuurid))<\/pre>\r\n<h3>Enesekontroll (1 k\u00fcsimus)<\/h3>\r\n<code>[h5p id=\"15\"]<\/code>\r\n<h2>J\u00e4rjendiga seotud operatsioonid. Indeksid<\/h2>\r\nVaatleme m\u00f5ningaid j\u00e4rjenditega seotud operatsioone.\r\n\r\n<strong>J\u00e4rjendi loomine<\/strong>\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">n\u00e4dalap\u00e4evad = [\"esmasp\u00e4ev\", \"teisip\u00e4ev\", \"kolmap\u00e4ev\", \"neljap\u00e4ev\", \"reede\", \"laup\u00e4ev\", \"p\u00fchap\u00e4ev\"]<\/pre>\r\n<strong>J\u00e4rjendi ekraanile v\u00e4ljastamine<\/strong>\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">print(n\u00e4dalap\u00e4evad)<\/pre>\r\n<strong>Elementide arvu (j\u00e4rjendi pikkuse) leidmine<\/strong>\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">n\u00e4dalap\u00e4evi = len(n\u00e4dalap\u00e4evad)\r\nprint('J\u00e4rjendis on ' + str(n\u00e4dalap\u00e4evi) + ' elementi')<\/pre>\r\n<strong>J\u00e4rjendisse kuulumise kontroll<\/strong>\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">if \"palgap\u00e4ev\" in n\u00e4dalap\u00e4evad:\r\n    print(\"Palgap\u00e4ev on j\u00e4rjendis\")\r\nelse:\r\n    print(\"Palgap\u00e4ev ei ole j\u00e4rjendis\")<\/pre>\r\n<strong>Konkreeetse elemendi v\u00e4\u00e4rtus indeksi (j\u00e4rjekorranumbri) abil<\/strong>\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">print(n\u00e4dalap\u00e4evad[1])<\/pre>\r\nIndeks m\u00e4rgitakse nurksulgudesse.\r\n\r\nPane t\u00e4hele, et <code class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">n\u00e4dalap\u00e4evad[1]<\/code> annab meile j\u00e4rjendi teise elemendi, mitte esimese. Tavap\u00e4raselt algavad programmides indeksid numbrist 0, mis vastab esimesele elemendile. T\u00f5epoolest\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">print(n\u00e4dalap\u00e4evad[0])<\/pre>\r\nannab j\u00e4rjendi (argikeelselt) esimese elemendi. Seet\u00f5ttu tuleb olla t\u00e4helepanelik, kas r\u00e4\u00e4gitakse <em>esimesest elemendist<\/em> v\u00f5i <em>elemendist indeksiga 1<\/em>.\r\n\r\nKuna loendamine algab nullist, siis viimase elemendi indeks on \u00fche v\u00f5rra v\u00e4iksem j\u00e4rjendi pikkusest: j\u00e4rjendi <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">n\u00e4dalap\u00e4evad<\/code><\/code> puhul on viimase elemendi indeks 6, sest elemente on 7.\r\n\r\n<img class=\"aligncenter wp-image-130 size-full\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2018\/12\/indeksid.png\" alt=\"\" width=\"905\" height=\"102\" \/>\r\n\r\nKatseta:\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">n\u00e4dalap\u00e4evad = [\"esmasp\u00e4ev\", \"teisip\u00e4ev\", \"kolmap\u00e4ev\", \"neljap\u00e4ev\", \"reede\", \"laup\u00e4ev\", \"p\u00fchap\u00e4ev\"]\r\nprint(n\u00e4dalap\u00e4evad[6])\r\nprint(n\u00e4dalap\u00e4evad[7])<\/pre>\r\nKui \u00fcritada kasutada indeksit, millele vastavat elementi j\u00e4rjendis ei ole, siis ilmub veateade <code class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">IndexError: list index out of range<\/code>.\r\n<h3>Enesekontroll (1 k\u00fcsimus)<\/h3>\r\n<code>[h5p id=\"16\"]<\/code>\r\n\r\nPythonis on t\u00f5epoolest lubatud kasutada negatiivseid indekseid.\r\n<h2>S\u00f5ned kui j\u00e4rjendid<\/h2>\r\nPaljud j\u00e4rjendite operatsioonid (kuid mitte k\u00f5ik) on lubatud s\u00f5nede peal. S\u00f5ne puhul on elementideks s\u00f5ne \u00fcksikud s\u00fcmbolid:\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">linn = \"Tartu\"\r\nprint(linn[2])<\/pre>\r\n<h2>Viilutamine<\/h2>\r\nViilutamine on operatsioon, millega moodustatakse j\u00e4rjendi p\u00f5hjal <em>alamj\u00e4rjend<\/em> (s\u00f5ne puhul <em>alams\u00f5ne<\/em>). Arvesta, et viilude loomine ei muuda esialgset j\u00e4rjendit. Katseta j\u00e4rgnevaid n\u00e4iteid:\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">a = ['A', 'B', 'C', 'D', 'E']\r\nprint(a[0:2])\r\nprint(a[:2])\r\nprint(a[2:5])\r\nprint(a[2:])\r\nprint(a[-2:])<\/pre>\r\nEnne koolonit kirjutatakse indeks, millest alates tuleb elemente kopeerida (selle indeksiga element kaasa arvatud). Kooloni j\u00e4rele kirjutatakse indeks, mille juures tuleb kopeerimine l\u00f5petada (selle indeksiga element j\u00e4\u00e4b tulemusest v\u00e4lja). Kui algav indeks kirjutamata j\u00e4tta, siis alustatakse j\u00e4rjendi algusest. Kui l\u00f5petav indeks kirjutamata j\u00e4tta, siis kopeeritakse kuni j\u00e4rjendi l\u00f5puni (viimane element kaasa arvatud).\r\n\r\nJ\u00e4rgmises n\u00e4ites viilutatakse erinevaid s\u00f5nesid - nii neid, mis on muutujale v\u00e4\u00e4rtuseks antud, kui ka neid, mis pole.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">s\u00f5ne1 = 'Tartu'\r\nprint(s\u00f5ne1[1:4])\r\ns\u00f5ne2 = s\u00f5ne1\r\nprint(s\u00f5ne2[-2:])\r\nprint(\"V\u00e4ike-Maarja\"[4:9])<\/pre>\r\n<h3>Enesekontroll (1 k\u00fcsimus)<\/h3>\r\n<code>[h5p id=\"17\"]<\/code>\r\n<h2>Veel operatsioone<\/h2>\r\n<p class=\"vspace\">Toome l\u00f5petuseks tabeli, milles on nii juba mainitud kui mainimata operatsioone, mida j\u00e4rjenditega sooritada. Sarnaselt viilutamisele ei muuda need operatsioonid j\u00e4rjendit ennast. Katseta neid ka ise!<\/p>\r\n\r\n<table style=\"border-collapse: collapse;width: 99.8512%\" border=\"0\">\r\n<tbody>\r\n<tr>\r\n<th style=\"width: 31.994%\">Avaldis<\/th>\r\n<th style=\"width: 18.4524%\">V\u00e4\u00e4rtus<\/th>\r\n<th style=\"width: 49.4048%\">Kommentaar<\/th>\r\n<\/tr>\r\n<tr>\r\n<td style=\"width: 31.994%\">len([2, 1, 4, 3, -5])<\/td>\r\n<td style=\"width: 18.4524%\">5<\/td>\r\n<td style=\"width: 49.4048%\">Elementide arv<\/td>\r\n<\/tr>\r\n<tr>\r\n<td style=\"width: 31.994%\">min([2, 1, 4, 3])<\/td>\r\n<td style=\"width: 18.4524%\">1<\/td>\r\n<td style=\"width: 49.4048%\">Minimaalne element<\/td>\r\n<\/tr>\r\n<tr>\r\n<td style=\"width: 31.994%\">max([2, 1, 4, 3])<\/td>\r\n<td style=\"width: 18.4524%\">4<\/td>\r\n<td style=\"width: 49.4048%\">Maksimaalne element<\/td>\r\n<\/tr>\r\n<tr>\r\n<td style=\"width: 31.994%\">sum([2, 1, 4, 3])<\/td>\r\n<td style=\"width: 18.4524%\">10<\/td>\r\n<td style=\"width: 49.4048%\">Elementide summa<\/td>\r\n<\/tr>\r\n<tr>\r\n<td style=\"width: 31.994%\">sorted([2, 1, 4, 3])<\/td>\r\n<td style=\"width: 18.4524%\">[1, 2, 3, 4]<\/td>\r\n<td style=\"width: 49.4048%\">Tagastab j\u00e4rjestatud j\u00e4rjendi<\/td>\r\n<\/tr>\r\n<tr>\r\n<td style=\"width: 31.994%\">3 in [2, 1, 4, 3]<\/td>\r\n<td style=\"width: 18.4524%\">True<\/td>\r\n<td style=\"width: 49.4048%\">Kas esineb selline element?<\/td>\r\n<\/tr>\r\n<tr>\r\n<td style=\"width: 31.994%\">[2, 1] + [3, 1]<\/td>\r\n<td style=\"width: 18.4524%\">[2, 1, 3, 1]<\/td>\r\n<td style=\"width: 49.4048%\">J\u00e4rjendite liitmine<\/td>\r\n<\/tr>\r\n<tr>\r\n<td style=\"width: 31.994%\">[2, 1, 4, 1].count(1)<\/td>\r\n<td style=\"width: 18.4524%\">2<\/td>\r\n<td style=\"width: 49.4048%\">Elemendi esinemiste arv<\/td>\r\n<\/tr>\r\n<tr>\r\n<td style=\"width: 31.994%\">[1, 2, 3] == [2, 1, 3]<\/td>\r\n<td style=\"width: 18.4524%\">False<\/td>\r\n<td style=\"width: 49.4048%\">J\u00e4rjekord on oluline<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\nJ\u00e4rjendile \u00fche elemendi liitmiseks saab kasutada ka meetodit <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">append<\/code>. Erinevalt eespool toodud operatsioonidest muutub sel juhul j\u00e4rjend ise. J\u00e4rgnevas n\u00e4ites on toodud kaks viisi, kuidas j\u00e4rjendile element juurde lisada.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">a = [5, 8]\r\na.append(7)\r\nprint(a)\r\nb = [5, 8]\r\nb += [7]\r\nprint(b)<\/pre>\r\n&nbsp;\r\n\r\nVaata ka <a href=\"http:\/\/www.uttv.ee\/naita?id=24026\">kokkuv\u00f5tvat videot<\/a>.\r\n\r\nPalun kommenteeri seda materjali <a href=\"https:\/\/docs.google.com\/forms\/d\/e\/1FAIpQLScHV9pspDknEW-IbQ2SrCvHkLxVH4uUFWAzhEfqKNPi7MHMwQ\/viewform\" target=\"_blank\" rel=\"noopener\">Google'i k\u00fcsimustikus<\/a>.","rendered":"<p>Selles peat\u00fckis tutvume j\u00e4rjendiga, mis on elementide j\u00e4rjestatud kogum.<\/p>\n<h2>J\u00e4rjend (<em>list<\/em>)<\/h2>\n<p>Seni oleme programmides hoidnud andmeid eraldi muutujates: iga arvu v\u00f5i s\u00f5ne oleme salvestanud teistest eraldi. Tihtipeale on kasulik paigutada andmeid \u00fchisesse andmestruktuuri, mis muudab nende kasutamise lihtsamaks. Pythonis on \u00fcheks selliseks struktuuriks <strong>j\u00e4rjend<\/strong> (inglise keeles <em><strong>list<\/strong><\/em>). (Arvesta sellega, et erinevates programmeerimiskeeltes ja \u00f5ppematerjalides v\u00f5ivad terminid erineda.)<\/p>\n<p>J\u00e4rjend koosneb elementidest, mis loetletakse nurksulgudes \u00fcksteisest komadega eraldatult. N\u00e4iteks on kaks j\u00e4rjendit<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">n\u00e4dalap\u00e4evad = [\"esmasp\u00e4ev\", \"teisip\u00e4ev\", \"kolmap\u00e4ev\", \"neljap\u00e4ev\", \"reede\", \"laup\u00e4ev\", \"p\u00fchap\u00e4ev\"]\r\ntemperatuurid = [-4, 2, 6, 4, 4]<\/pre>\n<p>J\u00e4rjendis v\u00f5ib esineda korduvaid elemente, n\u00e4iteks j\u00e4rjendis <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">temperatuurid<\/code> on element v\u00e4\u00e4rtusega <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">4<\/code><\/code> kaks korda.<\/p>\n<p>Eeltoodud j\u00e4rjendites on esimeses ainult s\u00f5ned ja teises ainult t\u00e4isarvud. Tegelikult v\u00f5ivad Pythonis \u00fche j\u00e4rjendi elemendid olla ka erinevat t\u00fc\u00fcpi, aga tavaliselt me seda v\u00f5imalust ei kasuta.<\/p>\n<p class=\"vspace\">Vaatame, mis t\u00fc\u00fcpi n\u00e4itab Python ise muutuja <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">temperatuurid<\/code><\/code> puhul:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">temperatuurid = [-4, 2, 6, 4, 4]\r\nprint(type(temperatuurid))<\/pre>\n<h3>Enesekontroll (1 k\u00fcsimus)<\/h3>\n<p><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=\"J\u00e4rjend-1-t\u00fc\u00fcp\"><\/iframe><\/div>\n<\/div>\n<p><\/code><\/p>\n<h2>J\u00e4rjendiga seotud operatsioonid. Indeksid<\/h2>\n<p>Vaatleme m\u00f5ningaid j\u00e4rjenditega seotud operatsioone.<\/p>\n<p><strong>J\u00e4rjendi loomine<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">n\u00e4dalap\u00e4evad = [\"esmasp\u00e4ev\", \"teisip\u00e4ev\", \"kolmap\u00e4ev\", \"neljap\u00e4ev\", \"reede\", \"laup\u00e4ev\", \"p\u00fchap\u00e4ev\"]<\/pre>\n<p><strong>J\u00e4rjendi ekraanile v\u00e4ljastamine<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">print(n\u00e4dalap\u00e4evad)<\/pre>\n<p><strong>Elementide arvu (j\u00e4rjendi pikkuse) leidmine<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">n\u00e4dalap\u00e4evi = len(n\u00e4dalap\u00e4evad)\r\nprint('J\u00e4rjendis on ' + str(n\u00e4dalap\u00e4evi) + ' elementi')<\/pre>\n<p><strong>J\u00e4rjendisse kuulumise kontroll<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">if \"palgap\u00e4ev\" in n\u00e4dalap\u00e4evad:\r\n    print(\"Palgap\u00e4ev on j\u00e4rjendis\")\r\nelse:\r\n    print(\"Palgap\u00e4ev ei ole j\u00e4rjendis\")<\/pre>\n<p><strong>Konkreeetse elemendi v\u00e4\u00e4rtus indeksi (j\u00e4rjekorranumbri) abil<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">print(n\u00e4dalap\u00e4evad[1])<\/pre>\n<p>Indeks m\u00e4rgitakse nurksulgudesse.<\/p>\n<p>Pane t\u00e4hele, et <code class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">n\u00e4dalap\u00e4evad[1]<\/code> annab meile j\u00e4rjendi teise elemendi, mitte esimese. Tavap\u00e4raselt algavad programmides indeksid numbrist 0, mis vastab esimesele elemendile. T\u00f5epoolest<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">print(n\u00e4dalap\u00e4evad[0])<\/pre>\n<p>annab j\u00e4rjendi (argikeelselt) esimese elemendi. Seet\u00f5ttu tuleb olla t\u00e4helepanelik, kas r\u00e4\u00e4gitakse <em>esimesest elemendist<\/em> v\u00f5i <em>elemendist indeksiga 1<\/em>.<\/p>\n<p>Kuna loendamine algab nullist, siis viimase elemendi indeks on \u00fche v\u00f5rra v\u00e4iksem j\u00e4rjendi pikkusest: j\u00e4rjendi <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">n\u00e4dalap\u00e4evad<\/code><\/code> puhul on viimase elemendi indeks 6, sest elemente on 7.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-130 size-full\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2018\/12\/indeksid.png\" alt=\"\" width=\"905\" height=\"102\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2018\/12\/indeksid.png 905w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2018\/12\/indeksid-300x34.png 300w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2018\/12\/indeksid-768x87.png 768w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2018\/12\/indeksid-65x7.png 65w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2018\/12\/indeksid-225x25.png 225w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2018\/12\/indeksid-350x39.png 350w\" sizes=\"auto, (max-width: 905px) 100vw, 905px\" \/><\/p>\n<p>Katseta:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">n\u00e4dalap\u00e4evad = [\"esmasp\u00e4ev\", \"teisip\u00e4ev\", \"kolmap\u00e4ev\", \"neljap\u00e4ev\", \"reede\", \"laup\u00e4ev\", \"p\u00fchap\u00e4ev\"]\r\nprint(n\u00e4dalap\u00e4evad[6])\r\nprint(n\u00e4dalap\u00e4evad[7])<\/pre>\n<p>Kui \u00fcritada kasutada indeksit, millele vastavat elementi j\u00e4rjendis ei ole, siis ilmub veateade <code class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">IndexError: list index out of range<\/code>.<\/p>\n<h3>Enesekontroll (1 k\u00fcsimus)<\/h3>\n<p><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=\"J\u00e4rjend-1-miinusindeks\"><\/iframe><\/div>\n<\/div>\n<p><\/code><\/p>\n<p>Pythonis on t\u00f5epoolest lubatud kasutada negatiivseid indekseid.<\/p>\n<h2>S\u00f5ned kui j\u00e4rjendid<\/h2>\n<p>Paljud j\u00e4rjendite operatsioonid (kuid mitte k\u00f5ik) on lubatud s\u00f5nede peal. S\u00f5ne puhul on elementideks s\u00f5ne \u00fcksikud s\u00fcmbolid:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">linn = \"Tartu\"\r\nprint(linn[2])<\/pre>\n<h2>Viilutamine<\/h2>\n<p>Viilutamine on operatsioon, millega moodustatakse j\u00e4rjendi p\u00f5hjal <em>alamj\u00e4rjend<\/em> (s\u00f5ne puhul <em>alams\u00f5ne<\/em>). Arvesta, et viilude loomine ei muuda esialgset j\u00e4rjendit. Katseta j\u00e4rgnevaid n\u00e4iteid:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">a = ['A', 'B', 'C', 'D', 'E']\r\nprint(a[0:2])\r\nprint(a[:2])\r\nprint(a[2:5])\r\nprint(a[2:])\r\nprint(a[-2:])<\/pre>\n<p>Enne koolonit kirjutatakse indeks, millest alates tuleb elemente kopeerida (selle indeksiga element kaasa arvatud). Kooloni j\u00e4rele kirjutatakse indeks, mille juures tuleb kopeerimine l\u00f5petada (selle indeksiga element j\u00e4\u00e4b tulemusest v\u00e4lja). Kui algav indeks kirjutamata j\u00e4tta, siis alustatakse j\u00e4rjendi algusest. Kui l\u00f5petav indeks kirjutamata j\u00e4tta, siis kopeeritakse kuni j\u00e4rjendi l\u00f5puni (viimane element kaasa arvatud).<\/p>\n<p>J\u00e4rgmises n\u00e4ites viilutatakse erinevaid s\u00f5nesid &#8211; nii neid, mis on muutujale v\u00e4\u00e4rtuseks antud, kui ka neid, mis pole.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">s\u00f5ne1 = 'Tartu'\r\nprint(s\u00f5ne1[1:4])\r\ns\u00f5ne2 = s\u00f5ne1\r\nprint(s\u00f5ne2[-2:])\r\nprint(\"V\u00e4ike-Maarja\"[4:9])<\/pre>\n<h3>Enesekontroll (1 k\u00fcsimus)<\/h3>\n<p><code><\/p>\n<div id=\"h5p-17\">\n<div class=\"h5p-iframe-wrapper\"><iframe id=\"h5p-iframe-17\" class=\"h5p-iframe\" data-content-id=\"17\" style=\"height:1px\" src=\"about:blank\" frameBorder=\"0\" scrolling=\"no\" title=\"J\u00e4rjend-1-viilutamine\"><\/iframe><\/div>\n<\/div>\n<p><\/code><\/p>\n<h2>Veel operatsioone<\/h2>\n<p class=\"vspace\">Toome l\u00f5petuseks tabeli, milles on nii juba mainitud kui mainimata operatsioone, mida j\u00e4rjenditega sooritada. Sarnaselt viilutamisele ei muuda need operatsioonid j\u00e4rjendit ennast. Katseta neid ka ise!<\/p>\n<table style=\"border-collapse: collapse;width: 99.8512%\">\n<tbody>\n<tr>\n<th style=\"width: 31.994%\">Avaldis<\/th>\n<th style=\"width: 18.4524%\">V\u00e4\u00e4rtus<\/th>\n<th style=\"width: 49.4048%\">Kommentaar<\/th>\n<\/tr>\n<tr>\n<td style=\"width: 31.994%\">len([2, 1, 4, 3, -5])<\/td>\n<td style=\"width: 18.4524%\">5<\/td>\n<td style=\"width: 49.4048%\">Elementide arv<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 31.994%\">min([2, 1, 4, 3])<\/td>\n<td style=\"width: 18.4524%\">1<\/td>\n<td style=\"width: 49.4048%\">Minimaalne element<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 31.994%\">max([2, 1, 4, 3])<\/td>\n<td style=\"width: 18.4524%\">4<\/td>\n<td style=\"width: 49.4048%\">Maksimaalne element<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 31.994%\">sum([2, 1, 4, 3])<\/td>\n<td style=\"width: 18.4524%\">10<\/td>\n<td style=\"width: 49.4048%\">Elementide summa<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 31.994%\">sorted([2, 1, 4, 3])<\/td>\n<td style=\"width: 18.4524%\">[1, 2, 3, 4]<\/td>\n<td style=\"width: 49.4048%\">Tagastab j\u00e4rjestatud j\u00e4rjendi<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 31.994%\">3 in [2, 1, 4, 3]<\/td>\n<td style=\"width: 18.4524%\">True<\/td>\n<td style=\"width: 49.4048%\">Kas esineb selline element?<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 31.994%\">[2, 1] + [3, 1]<\/td>\n<td style=\"width: 18.4524%\">[2, 1, 3, 1]<\/td>\n<td style=\"width: 49.4048%\">J\u00e4rjendite liitmine<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 31.994%\">[2, 1, 4, 1].count(1)<\/td>\n<td style=\"width: 18.4524%\">2<\/td>\n<td style=\"width: 49.4048%\">Elemendi esinemiste arv<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 31.994%\">[1, 2, 3] == [2, 1, 3]<\/td>\n<td style=\"width: 18.4524%\">False<\/td>\n<td style=\"width: 49.4048%\">J\u00e4rjekord on oluline<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>J\u00e4rjendile \u00fche elemendi liitmiseks saab kasutada ka meetodit <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">append<\/code>. Erinevalt eespool toodud operatsioonidest muutub sel juhul j\u00e4rjend ise. J\u00e4rgnevas n\u00e4ites on toodud kaks viisi, kuidas j\u00e4rjendile element juurde lisada.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">a = [5, 8]\r\na.append(7)\r\nprint(a)\r\nb = [5, 8]\r\nb += [7]\r\nprint(b)<\/pre>\n<p>&nbsp;<\/p>\n<p>Vaata ka <a href=\"http:\/\/www.uttv.ee\/naita?id=24026\">kokkuv\u00f5tvat videot<\/a>.<\/p>\n<p>Palun kommenteeri seda materjali <a href=\"https:\/\/docs.google.com\/forms\/d\/e\/1FAIpQLScHV9pspDknEW-IbQ2SrCvHkLxVH4uUFWAzhEfqKNPi7MHMwQ\/viewform\" target=\"_blank\" rel=\"noopener\">Google&#8217;i k\u00fcsimustikus<\/a>.<\/p>\n","protected":false},"author":12,"menu_order":1,"template":"","meta":{"pb_show_title":"on","pb_short_title":"","pb_subtitle":"","pb_authors":[],"pb_section_license":""},"chapter-type":[],"contributor":[],"license":[],"class_list":["post-129","chapter","type-chapter","status-publish","hentry"],"part":127,"_links":{"self":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapters\/129","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/wp\/v2\/users\/12"}],"version-history":[{"count":9,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapters\/129\/revisions"}],"predecessor-version":[{"id":423,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapters\/129\/revisions\/423"}],"part":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/parts\/127"}],"metadata":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapters\/129\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/wp\/v2\/media?parent=129"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapter-type?post=129"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/wp\/v2\/contributor?post=129"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/wp\/v2\/license?post=129"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}