Szótár és műveletei

Amit az érettségihez tudni érdemes...

A Pythonban az egyik alapvető összetett adatszerkezet a lista és a halmaz mellett a szótár.

Pl.:
szotar={} szotar={1:100, 2:200, 3:300, 4:400} szotar={0:'A', 1:'B', 2:'C', 3:'D', 4:'E'} szotar={'a':'szöveg', 'b':2, 'c':'X'} szotar={1:[0,1,2], 2:[4,5,6], 3:[7,8,9]} szotar1={} szotar2={0:'A', 1:'B', 2:'C', 3:'D', 4:'E'} szotar1=szotar2 # üres szótár # kulcs:érték # bármi lehet a szótár eleme # szotar1: {0:'A', 1:'B', 2:'C', 3:'D', 4:'E'}

MŰVELETEK

CLEAR - szótár elemeinek törlése
szotar={1:100, 2:200, 3:300, 4:400} print(szotar.clear()) → {} # üres szótár
COPY - szótár másolása
szotar={1:100, 2:200, 3:300, 4:400} szotar2=szotar.copy() print(szotar2) → {1:100, 2:200, 3:300, 4:400}
FROMKEYS - szótár "gyártása" megadott kulcsokkal és értékkel
kulcsok=(1,2,3) szotar=dict.fromkeys(kulcsok,'érték') print(szotar) → {1:'érték', 2:'érték', 3:'érték'} kulcsok=('a', 'b', 'c') szotar=dict.fromkeys(kulcsok) print(szotar) → {'a':None, 'b':None, 'c':None}
GET – szótár adott kulcshoz tartozó bejegyzésének lekérdezése
szotar={1:100, 2:200, 3:300, 4:400} print(szotar.get(3)) → 300 print(szotar.get(5,1000)) → 1000 # nem létező kulcs esetén az 1000 lesz az alapérték print(szotar.get(10)) → None # nem létező kulcs esetén az alapérték: None
ITEM, KEYS, VALUES – (kulcs,érték) tuple-lista, csak kulcsok, illetve értékek listája
szotar={0:'A', 1:'B', 2:'C', 3:'D', 4:'E'} print(szotar.items()) → dict_items([(0, 'A'), (1, 'B'), (2, 'C'), (3, 'D'), (4, 'E')]) print(szotar.keys()) → dict_keys([0, 1, 2, 3, 4]) print(szotar.values()) → dict_values(['A', 'B', 'C', 'D', 'E']) # felhasználás például ciklikus szótár-feldolgozáshoz: for kulcs, ertek in szotar.items(): ... # kulcs és érték külön-külön kezelhető... for bejegyzes in szotar.items(): ... # bejegyzes: (kulcs,érték) tuple... for kulcs in szotar.keys(): print(szotar[kulcs]) # kulcsok ciklikus felhasználása... ... for ertek in szotar.values(): print(ertek) # értékek ciklikus felhasználása... ...
POP – adott kulcsú elem törlése a szótárból
szotar={0:'A', 1:'B', 2:'C', 3:'D', 4:'E'} szotar.pop(1) print(szotar) → {0:'A', 2:'C', 3:'D', 4:'E'} default='bármi, akár szám is' szotar.pop(5,default) print(szotar) → {0:'A', 2:'C', 3:'D', 4:'E'} # Nincs hibaüzenet! Default nélkül van hibaüzenet...
POPITEM – törli az utolsó kulcs:érték bejegyzést a szótárból
szotar={0:'A', 1:'B', 2:'C', 3:'D', 4:'E'} szotar.popitem() print(szotar) → {0:'A', 1:'B', 2:'C', 3:'D'} utolso=szotar.popitem() print(utolso) → (3, 'D') # tuple alakban visszaadja az utolsó (törölt) bejegyzést... print(szotar) → {0:'A', 1:'B', 2:'C'} 3.7 verzió előtt random elemet törölt!
SETDEFAULT – adott kulcsú szótár elem értékének beállítása
szotar={0:'A', 1:'B', 2:'C', 3:'D', 4:'E'} v=szotar.setdefault(2) # ha a kulcs létezik, akkor a kulcshoz tartozó értéket kapjuk print(v) → 'C' v=szotar.setdefault(2,'X') # ha a kulcs létezik, akkor a kulcshoz tartozó érték nem változik, marad a régi érték print(v) → 'C' v=szotar.setdefault(10) # ha a kulcs nem létezik, új kulcs:érték páros kerül a szótárba. Az érték a None lesz print(v) → None print(szotar) → {0:'A', 1:'B', 2:'C', 3:'D', 4:'E', 10:None} v=szotar.setdefault(8,'Y') # ha a kulcs nem létezik, akkor új kulcs:érték páros kerül a szótárba a megadott paraméterekkel. print(v) → 'Y' print(szotar) → {0:'A', 1:'B', 2:'C', 3:'D', 4:'E', 10:None, 8:'Y'}
UPDATE – új szótárbejegyzés beszúrása, vagy meglévő módosítása
szotar={0:'A', 1:'B', 2:'C', 3:'D', 4:'E'} szotar.update({5:'Z'}) # szótár "frissítése" új elemmel print(szotar) → {0:'A', 1:'B', 2:'C', 3:'D', 4:'E', 5:'Z'} szotar.update({2:'X'}) # szótár "frissítése", meglévő elem módosítása (update) print(szotar) → {0:'A', 1:'B', 2:'X', 3:'D', 4:'E', 5:'Z'}