Kujutused
Eelmine
Järgmine

Kujutused

Erinevalt numbriliste indeksitega loendidest, hulkadest, korteežidest ja stringidest võib kujutuse võtmeks olla suvaline muutumatu andmetüüp. Stringid ja arvud võivad olla igal juhul kujutuse võtmeteks. Korteež võib olla kujutuse võtmeks ainult siis kui ta sisaldab ainult stringe, arve või korteeže. Loendid ei saa olla kujutuse võtmeteks, kuna neid võib käigu pealt muuta.

Kujutust võib käsitleda järjestamata võtme: väärtuse paaride hulgana, eeldades, et võtmed on unikaalsed. Loogeliste sulgude paar {} loob tühja kujutuse.

Kujutust on võimalik täita sisuga, eraldades võtme:väärtuse paari komaga. Nii kirjutatakse kujutused ka väljundisse.

>>> tel = {'jack': 4098, 'sape': 4139}
>>> tel['guido'] = 4127
>>> tel
{'sape': 4139, 'guido': 4127, 'jack': 4098}
>>> tel['jack']
4098
>>> del tel['sape']
>>> tel['irv'] = 4127
>>> tel
{'guido': 4127, 'irv': 4127, 'jack': 4098}
>>> tel.keys()
['guido', 'irv', 'jack']
>>> tel.has_key('guido')
True
>>> 'guido' in tel
True

Kui võtmeteks on lihtsad (ilma tühikuteta) stringid, on mõnikord hõlpsam määrata paarid võtmesõnaliste argumentidena:

>>> dict(sape=4139, guido=4127, jack=4098)
{'sape': 4139, 'jack': 4098, 'guido': 4127}

Dicte lehitsedes (looping) võib võtit ta talle vastavat väärtust korraga kätte saada kasutades iteritems() meetodit.

>>> knights = {'gallahad': 'the pure', 'robin': 'the brave'}
>>> for k, v in knights.iteritems():
...     print k, v
...
gallahad the pure
robin the brave

Tabel 3.5. Tehted kujutustega

Tehe Seletus Märkused
len(a) as sisalduvate elementide arv  
a[k]a väärtus, mille võti on k (1)
a[k] = va[k] väärtuseks saab v 
del a[k]eemaldab elemendi a[k] ast(1)
a.clear()eemaldab kõik a elemendid 
a.copy() a (pindmine) koopia 
a.has_key(k)True kui a sisaldab võtit k, vastasel korral False 
k in asama mis a.has_key(k) 
k not in asama mis not a.has_key(k) 
a.items()koopia a võtme ning väärtuse paaride loendist(2)
a.keys()koopia a võtmete loendist(2)
a.update([b])uuendab (ja kirjutab üle) võtme ning väärtuse paarid bst(7)
a.fromkeys(seq[, value])Loob uue kujutuse, mille võtmed on seq ja väärtus value(5)
a.values()koopia a väärtuste loendist(2)
a.get(k[, x])a[k] kui k leidub as, vastasel korral x(3)
a.setdefault(k[, x])a[k] kui k leidub as, vastasel korral x (omistades talle väärtuse) 
a.pop(k[, x])a[k] kui k leidub as, vastasel korral x (ja kustutab k)(6)
a.popitem()eemaldab ast ja tagastab meelevaldse võtme ning väärtuse paari(4)
a.iteritems()tagastab iteraatori üle võtme ning väärtuse paaride(2)
a.iterkeys()tagastab iteraatori üle kujutuse võtmete(2)
a.itervalues()tagastab iteraatori üle kujutuse väärtuste(2)

Märkus

  1. Annab veateate, kui võtit k kujutuses ei leidu

  2. Võtmed ja väärtused on kujutuses meelevaldses järjekorras, mis ei ole juhuslik, oleneb Pythoni platvormist ning kujutuse loomisest ja elementide lisamise ning eemaldamise ajaloost.

  3. Ei anna veateadet, kui k-d kujutuses ei leidu. Selle asemel tagastab x-i. Kui x-i ei ole antud ja k-d ei leidu, siis tagastab None.

  4. Kui kujutus on tühi, siis popitem() annab veateate.

  5. fromkeys() tagastab uue kujutuse. Vaikeväärtus on None.

  6. pop() annab veateate, kui vaikeväärtust pole antud ja võtit ei leidu.

  7. update() võtab väärtusena vastu kas teise kujutuse või loenduva objekti (näiteks korteeži), mille pikkus on 2.

Eelmine
Järgmine
Esileht