מילון dictionary
מילון הוא צורה נוספת של ארגון מידע (אובייקט נוסף) ועושה שימוש בסוג נוסף של סוגריים – הפעם מסולסלים { } . במילון סדר האיברים אינו חשוב ואינו נשמר, וכל איבר מחולק לשניים מפתח key וערך value המופרדים ביניהם בנקודתיים (:) – נדגים -
dicta={"a" : 1,"b" :2, "c" :3}
print (dicta)
>>>
{'a': 1, 'b': 2, 'c': 3}
והדרך לקבל ערך
dicta={"a" : 1,"b" :2, "c" :3}
print (dicta["b"])
>>>
2
הצורה הפשוטה לשימוש במילון היא לבקש מהמחשב להדפיס את הערך הצמוד לאחד המפתחות, במקרא שלנו למחרוזת "b" . כמו במילון, מחפשים הגדרה ומקבלים פירוש... פחות או יותר.
אפשר לבקש לעדכן את המילון ולהוסיף איבר נוסף (מפתח וערך) -
dicta={"a" : 1,"b" :2, "c" :3}
dicta ["d"]=4
print (dicta)
>>>
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
הסרת איבר מהמילון על ידי קריאה בשם המפתח –
dicta={"a" : 1,"b" :2, "c" :3}
del dicta ["b"]
print (dicta)
>>>
{'a': 1, 'c': 3}
בכל מילון יכול להופיע כל מפתח פעם אחת בלבד, הערכים יכולים להופיע פעמים רבות ויכולים ללבוש צורה של אובייקטים שונים (מחרוזת, מספר, רשימה, טופל וכו'). מפתחות יכולים להיות רק אובייקט מסוג מחרוזת, מספר או טופל – כלומר צורות שלא ניתן לשנות אותן (immutable) – מפתח אינו יכול להיות רשימה משום שרשימה מוגדרת mutable object (אנו יכולים להוסיף לה איברים, למחוק ממנה איברים וכו' מה שאי אפשר עם טופל או integer או מחרוזת).
כמו ברשימה, מרגע שיצרנו את המילון ניתן לבצע פעולות שונות באמצעות הקלדת שם המשתנה (השם שבחרנו לקרוא למילון המסוים) לאחריו נקודה (.) ולאחריה הפקודה. כך למשל הפקודה get תמצא את הערך הצמוד למפתח והפקודה pop תמחק מהמילון מפתח וערך מסוימים (בהתאם למפתח).
dicta={"a" : 1,"b" :2, "c" :3}
print(dicta.get ("a"))
>>>
1
dicta={"a":1,"b":2,"c":3} dicta.pop("a") print(dicta)
>>>
{'b': 2, 'c': 3}
אפשר לבקש להדפיס את רשימת הערכים המופיעים במילון או רשימת המפתחות המופיעים במילון –
dicta={"a":1,"b":2,"c":3} print(dicta.values())
>>>
dict_values([1, 2, 3])
dicta={"a":1,"b":2,"c":3} print(dicta.keys())
>>>
dict_keys(['a', 'b', 'c'])
dicta = {'a':1, 'b':2, 'c':3} print(dicta.items())
>>>
dict_items([('a', 1), ('b', 2), ('c', 3)])
הפקודה ()dicta.items מחזירה רשימה שמכילה טופלים ובהם המפתחות והערכים של המילון.
dicta = {'a':1, 'b':2, 'c':3} print(len(dicta))
>>>
3
dicta = {'a':1,'b':2} x = {'a':2, 'b':6, 'c':5} print(dicta) >>> {'a': 1, 'b': 2} dicta.update(x) print(dicta) >>> {'a': 2, 'b': 6, 'c': 5}
למעלה אנו רואים דרך מהירה לעדכן מילון.
החל מפייתון 3.5 ניתן למזג שני מילונים למילון אחד, כאשר מפתחות כפולים יהפכו לאחד (הערך שיכנס הוא הערך מהמילון השני) הדבר מתבצע באמצעות שתי כוכביות ושם המילון, דבר שמוציא את התוכן של המילון-
x={"a":1,"b":2}
y={"c":4,"d":8,"a":5}
z={**x,**y}
print(z)
>>>
{'a': 5, 'b': 2, 'c': 4, 'd': 8}