Andmetüüpidest (liht - ja liittüübid)

Programmeerimisel jaotatakse andmetüübid laias laastus lihttüüpideks ja liittüüpideks. Lihtüübid tähistavad nö “atomaarseid” või “jagamatuid” väärtusi – näiteks arvutüübid ja tõeväärtustüüp; liittüübid (näiteks list ja ennik) aga tähistavad väärtusi, mida saaks veel mingiteks alamkomponentideks (nt. listi elementideks) jagada. Sõnega on Pythoni puhul pisut segased lood – seda võib olenevalt vaatenurgast pidada nii lihttüübiks, kui ka liittüübiks.

Nagu öeldud, liittüüpi väärtused on kombineeritud kokku mingitest teistest väärtustest. Oluline on see, et need komponendid moodustavad mingi kindla struktuuri. Näiteks järjendite puhul moodustub struktuur sellest, et iga komponent (element) on teiste komponentidega võrreldes kas eespool või tagapool, teisisõnu – järjendi struktuur määrab elementide järjestuse. Teistel Pythoni liitüüpidel on teistsugune struktuur – näiteks hulgatüübi struktuur määrab ära vaid selle, millised elemendid hulka kuuluvad, elementide järjestus pole selles struktuuris oluline. Kuna struktuur on liittüüpide puhul väga tähtis, siis nimetatakse neid vahel ka struktuurseteks tüüpideks või andmestruktuurideks.

Antud õpiku käsitluses on erinevatel andmestruktuuridel erinevad kasutusviisid, mida nad toetavad – listi puhul saab elementi append-ida, sõnastikus saab küsida elementi tema (suvalist tüüpi) võtme järgi jne, st. meid huvitab eelkõige mida mingi andmestruktuur “teha oskab”. Reaalsetes programmides aga on tihti vaja teada ka ka seda kuidas seda tehakse. Seetõttu on loodud näiteks erinevaid listitüüpe, millega saab teha samu asju, aga mis sisemas töötavad erinevalt ning seetõttu sobivad eri situatsioonidesse paremini või halvemini (näiteks ühe tuntud listitüübi variatsiooni puhul toimib indekseerimine väga kiiresti aga teise puhul saab väga kiiresti listi algusesse uut elementi lisada).

Erinevat andmetüüpi väärtusi on vaja erinevates olukordades, sest nendega on võimalik sooritada erinevaid tegevusi. Ka näiliselt sama tegevus võib anda erinevaid andmetüüpe kasutades erinevaid tulemusi. Oluline on ka see, et erinevat tüüpi väärtusi hoitakse arvuti mälus erinevalt – ka ruumi võtavad nad mälus erinevalt.