11. Järjend
Järjend (inglise k. list) on andmetüüp loetelude tarvis. Järjenditega puutusime ülevaatlikult kokku ka for-tsükli teema juures. Järjend koosneb elementidest, mis ei pruugi tingimata olla üht tüüpi. Elemendid võivad järjendis korduda. Järjend ümbritsetakse nurksulgudega ja elemendid eraldatakse komadega.
arvud = [3, 6, 9, 12, 15, 9] linnad = ["Tallinn","Tartu","Narva"]
Jada elementide poole pöördutakse nende järjekorranumbriga jadas, kusjuures esimene element on järjenumbriga (indeksiga) 0.
print(arvud[0]) # Väljund: 3 print(linnad[1]) # Väljund: Tartu
Operatsioonid järjenditega
- jarjend.append(element) - elemendi lisamine järjendi lõppu (linnad.append("Pärnu"))
- jarjend.remove(element) - eemaldab elemendi (esimese esinemise) järjendist (linnad.remove("Narva"))
- jarjend.count(element) - konkreetse elemendi esinemiste arv (arvud.count(9) - tagastab arvu 2)
- jarjend.index(element) - konkreetse elemendi indeks (linnad.index("Tartu") - tagastab arvu 1)
- jarjend.sort() - elementide järjestamine kasvavas järjekorras
- jarjend.reverse() - elementide järjekorra ümberpööramine
- len(jarjend) - järjendi pikkus (len(arvud) - tagastab arvu 6)
- min(jarjend) - kõige väiksem element (teksti puhul tähestikulises järjekorras esimene element) (min(linnad) - tagastab "Narva")
- max(jarjend) - kõige suurem element (teksti puhul tähestikulises järjekorras viimane element) (max(arvud) - tagastab 15)
- sum(arvud) - järjendi elementide summa (ainult arvude puhul) (sum(arvud) - tagastab 54)
- element in jarjend - elemendi esinemise kontroll järjendis, tagastab tõeväärtuse (True või False) ("Tartu" in linnad - tagastab True)
Kui soovime pöörduda järjest kõigi järjendi elementide poole ükshaaval, võime kasutada tsüklit. Variante on mitu.
# muutuja linn saab väärtuseks # iga tsüklitiiru ajal ühe linna järjendist for linn in linnad: print(linn)
linnadearv = len(linnad) for i in range(linnadearv): # i saab väärtusi 0-st kuni (linnadearv-1)-ni print(linnad[i])
Sarnaselt järjenditele saab ka sõnede puhul pöörduda sõnes olevate sümbolite kui järjendi elementide poole. Muuta sõne sümboleid sarnaselt järjendi elementidele ei saa.
sone = "Tere" print(sone[2]) # Väljund: r
Näidisülesanne
Ülesanne. Koosta kolm järjendit, millest üks koosneb lause aluseks sobivatest sõnadest, teine öeldistest, kolmas sihitistest. Väljasta kõikvõimalikud laused nende järjendite põhjal kujul "<alus> <öeldis> <sihitis>" (näiteks "Poiss jooksis koju").
Lahendus. Koostame kolm järjendit (need ei pruugi olla sama pikkusega), kusjuures jälgime, et aluste ja öeldiste puhul oleks tegemist ainult kas ainsuses või mitmuses sõnadega, sihitised võiksid sobida kõigi öeldistega. Aga ei pea, siis ongi naljakam.
alused = ["Tüdruk", "Poiss", "Auto", "Kala", "Siga"] oeldised = ["jooksis", "roomas", "sõitis", "ujus", "lendas"] sihitised = ["koju", "kooli", "metsa", "külili"]
Meil oleks vaja võtta igast järjendist sõnu ja kombineerida neid iga teise järjendi iga sõnaga. Seega on vaja mitmekordset tsüklit, kus üks muutuja saaks järjest väärtusi ühest järjendist, teine teisest jne.
for alus in alused: for oeldis in oeldised: for sihitis in sihitised: print(alus, oeldis, sihitis)
Creative Commons litsentsiga Autorile viitamine + Mitteäriline eesmärk 3.0 Eesti (CC BY-NC 3.0 EE) - https://creativecommons.org/licenses/by-nc/3.0/ee/