22 Tipovi podatakaMetodali.pop([i])li.remove(x)li.reverse())li.sort([cmpfunc ])Primjer 2.3 Matrica je lista listi.OpisVra¢a element i i bri²e ga iz liste. Ako se iizostavi, onda se vra¢a zadnji element.Traºi x i bri²e ga iz liste li.Reverzira (obr¢e) £lanove liste li na mjestu.Sortira (slaºe) £lanove liste li na mjestu.cmpfunc() je funkcija za usporedbu.,>>> matrica = [[1 , 2, 3], [2, 3, 1]]>>> matrica [1]>>> matrica [0][2],[2, 3, 1]32.4 Rje£nikPreslikavanje (engl. mapping) je skup objekata indeksiranih s pomo¢u gotovo slobodnih vrijednostikoje se zovu klju£evi (engl. keys). Tako nastali objekti su promjenljivi, a za razliku od nizova, nisuporedani.<strong>Python</strong> nudi jednu vrstu preslikavanja, rje£nik (engl. dictionary). Knjiºni£ki i ekstenzijski modulipruºaju jo² vrsta preslikavanja, a druge moºe na£initi korisnik sâm. Klju£evi u rje£niku mogu bitirazli£itih tipova, ali moraju biti jednozna£ni (engl. hashable). Vrijednosti u rje£niku su takožer objektii to mogu biti razli£itih tipova. £lan u rje£niku je par kju£/vrijednost (engl. key/value). O rje£niku semoºe razmi²ljati kao o asocijativnom polju.Eksplicitno stvaranje rje£nika provodi se nizom parova klju£:vrijednost odvojenih zarezima, koji sesmje²taju unutar viti£astih zagrada. Dopu²ten je i zarez nakon zadnjeg £lana. Ako se klju£ pojavljujevi²e od jednom u rje£niku, samo se jedan od £lanova s tim klju£em sprema, jer klju£ mora biti jedincat.Drugim rije£ima, rje£nici ne dozvoljavaju duplikate klju£eva. Prazan se rje£nik ozna£uje parom praznihviti£astih zagrada. Evo nekih rje£nika:{'x':42, 'y':3.14, 'z':7} # Rjecnik s tri clana i string kljucevima{1: 2, 3:4} # Rjecnik s dva clana i cjelobrojnim kljucevima{ } # Prazan rjecnikTvorbu rje£nika mogu¢e je izvesti i s pomo¢u ugražene funkcije dict(). Na primjer:>>> dict([['a',12],['b',54]]){'a': 12, 'b': 54}>>> dict(a='zagreb', d='ogulin', e='Osijek'){'a': 'zagreb', 'e': 'Osijek', 'd': 'ogulin'}>>> dict([[12,'akumulator'],['baterija',4.5]]){'baterija': 4.5, 12: 'akumulator'}dict( ) bez argumenata stvara i vra¢a prazan rje£nik. Ako se klju£ pojavljuje vi²e nego jednom upopisu (argumentima funkcije dict), samo ¢e se posljednji £lan s tim kju£em zadrºati u rezultiraju¢emrje£niku.2.4.1 Ugražene metode rje£nikaNa sli£an na£in, s pomo¢u tablice 2.8 mogu se u primjerima provjeriti ugražene metode koje olak²avajurad s rje£nicima.
2.5. Skup 232.5 SkupTablica 2.8: Metode i operacije tipova preslikavanja (rje£nika)£lan/metodaOpisdi[k] Vra¢a £lan od di s klju£em k .di[k] = x Postavlja di[k] na x.del di[k] Bri²e di[k]iz di .di.clear()Bri²e sve £lanove iz di.di.copy()Vra¢a kopiju od di.di.has-key(k)Vra¢a 1 ako di ima klju£ k , a 0 ina£e.di.items()Vra¢a listu od (key ,value) parova.di.keys())Vra¢a listu od vrijednosti klju£eva.di.update(b) Dodaje sve objekte iz rje£nika b u di .di.values() Vra¢a listu svih vrijednosti spremljenih u di .di.get(k [,v]) Vra¢a di[k] ako naže; ina£e vra¢a v .Vra¢a di[k] ako naže; vra¢a v i postavljadi.setdefault(k[, v])di.popitem()di[k]=v .Vra¢a slu£ajne (key ,value) parove kaon-terce iz di.Od <strong>Python</strong> ver. 2.4, postoji ugraženi tip (iako takožer postoji i modul s imenom 'sets') s dvije varijante- obi£an i zamrznuti skup. Skup je neporedan niz jedincatih (neponavljaju¢ih) elemenata. Elementimoraju biti jednozna£ni, engl. hashable. Zamrznuti skupovi su jednozna£ni, pa mogu biti elementidrugih skupova, dok obi£ni skupovi to ne mogu biti.Operacijaset/frozenset([iterabilno=None])Set/ImmutableSet([iterabilno=None])len(selem in s / not in sfor elem ins: processelem...s1.issubset(s2)s1.issuperset(s2)s.add(elem)s.remove(elem))Tablica 2.9: Glavne operacije skupovaRezultat[koristi se za ugražene tipove] tvorba obi£nihili zamrznutih skupova iz iterabilnog niza, npr.set([5,2,7]), set("zdravo")[koristi se za set modul] tvorba obi£nih ilinepromjenljivih skupova iz iterabilnog niza,npr. Set([5,2,7])kardinalni broj skupa sIstinito ako element elem pripada / ne pripadaskupu sIterira na elementima skupa sIstinito ako je svaki element u s1 u s2Istinito ako je svaki element u s2 u s1Dodaje element elem u skup sBri²e element elem u skupu s. PodiºeKeyError iznimku ako se element ne pronaže