Andmetüübid Pythonis20. Oct '14

Sisse-ehitatud andmetüübid

Sisse-ehitatud tüüpides on:

i = 5                            # i on täisarv (int)
f = 3.14                         # f on ujukomaarv (float)
s = "baidijada"                  # Python 2.x baidijada (str)
u = u"Unicode sõne"              # Python 2.x sõne (unicode)

Üksiku baidi või karakteri jaoks eraldi andmetüüpi pole nagu C-s, Pythonis on sõne defineeritav nii ühekordse (') kui ka kahekordse ülakomaga (").

Massiivid

Pythonis on esindatud nii muudetav (mutable) kui mitte-muudetav (immutable) massiiv mille erinevus tuleb välja eelkõige jõudluses:

t = (x, y)                       # t on mitte-muudetav massiiv (tuple)
l = [x, y]                       # l on massiiv (list)

Mõlemil saab rakendada:

t.index(y)                       # Tagastab elemendi y indeksi
t.count(y)                       # Tagastab objektide y hulga massiivis

Järgnevad aga on võimalikud vaid list tüüpi objektidel:

l.append(6)                      # Lisa täisarv 6 massiivi lõppu
l.extend([7,8])                  # Lisa täisarve 7 ja 8 sisaldav massiiv lõppu
l.insert(0, 9)                   # Lisa täisarv 9 indeksile 0 ehk massiivi algusesse
l.remove(6)                      # Eemalda esimene element 6
l.pop()                          # Eemalda ning tagasta massiivi viimane element

Massiivide sorteerimiseks on kaks varianti, list tüüpi objekt toetab ise enda (in-place) sorteerimiseks ja ümber pööramiseks kahte meetodit:

l.sort()                         # Sorteeri massiiv
l.reverse()                      # Pööra massiiv ringi

Lisaks on olemas globaalsed funktsioonid reversed ja sorted, mida saab suvalisele massiivilaadsele (iterable) objektile rakendada ilma et nad sisendina kasutatud objekti mõjutaks:

sorted(t)     # Tagasta list-tüüpi objekt mis sisaldab järestatud t elemente
reversed(t)   # Tagasta iteraator millest saab küsida t elemente tagurpidises järjekorras

Sõnastik

Sõnastik on võti-väärtus andmestruktuur, mis on üsna sarnane Javast tuntud HashMapiga:

d = {"väga hea": 5, "pii": 3.14}   # d on sõnastik (dict)

Sõnastik on muudetav (mutable):

d["hea"] = 4                        # Lisa sõnastikku uus seos
d["keskmine"] = 3
d["halb"] = 2
d.pop("pii")                        # Eemalda võti "pii"
d["hea"]                            # Tagasta väärtus võtme "hea hinne" järgi

Sõnastiku kuvamine:

for key, value in d.items():
    print key, "=>", value

Sorteeritud sõnastik ei ole enam dict, vaid 2-elemendistest massiividest koosnev massiiv:

sorted(d.items(), key=lambda(k,v):k) # Võtme järgi
sorted(d.items(), key=lambda(k,v):v) # Väärtuse järgi
Python Unicode