Sõnastik (dict)
Järjekordne Python-i andmestruktuur on sõnastik ehk dictionary. Sõnastik erineb järjendist selle poolest, et kui järjendis (list) on võtmeks alati täisarv, ehk vastavad indeksid, siis sõnastikus saab võtmeks olla ka sõne või muud lihtsamad tüübid.
dog_owners = { 'Mati': 'labrador', 'Kati': 'beagle', 'Kadri': 'poodle'}
Sõnastiku loomine käib sarnaselt listi loomisega, aga seekord looksulgudega ning iga elemendi jaoks tuleb määrata elemendi võti ja väärtus. Sõnastik on järjekorrata ehk elemendid võivad esineda erinevas järjekoras.
Elementidele ligipääsemine
Elemendi saamiseks on kaks erinevat valikut, dicionary[key] ja dictionary.get(key).
dog_owners = {'Mati': 'labrador', 'Kati': 'beagle', 'Kadri': 'poodle'}
subject_grades = {'math': 1, 'physics': 4, 'english': 4}
print("Mati's dog breed is " + dog_owners['Mati'] + ".")
print("My english grade is " + str(subject_grades.get('english')) + ".")
Jooksutades seda koodi saame:
Mati's dog breed is labrador.
My english grade is 4.
Elementidele ligipääsemiseks on alati vaja teada võtme ehk key nimetust.
Elementide lisamine
Sõnastikku saab ka elemente juurde lisada võtme omistamise meetodil. dictionary[key] = value
subject_grades = {'math': 1, 'physics': 4, 'english': 4}
print(subject_grades)
subject_grades['literature'] = 3
print(subject_grades)
Tulemuseks on uus element sõnastikus
{'math': 1, 'physics': 4, 'english': 4}
{'math': 1, 'physics': 4, 'english': 4, 'literature': 3}
Elementide eemaldamine
Kõige lihtsam viis sõnastikust elemente eemaldada on del võtmesõnaga.
subject_grades = {'math': 1, 'physics': 4, 'english': 4}
print(subject_grades)
del subject_grades['math']
print(subject_grades)
tulemuseks on
{'english': 4, 'math': 1, 'physics': 4}
{'english': 4, 'physics': 4}
Operatsioonid sõnastikega
subject_grades = {'math': 1, 'physics': 4, 'english': 4}
Sisend |
Väljund |
len({'math': 1, 'physics': 4, 'english': 4}) |
3 |
subject_grades.keys() |
['english', 'physics', 'math'] |
subject_grades.values() |
[1, 4, 4] |
'math' in subject_grades |
True |
Lisamaterjalid sõnastike kohta
Rohkem saab lugeda ametlikust dokumentatsioonist: https://docs.python.org/3/tutorial/datastructures.html#dictionaries