מילון Dictionary אשר נקרא גם Hash-Table, הוא מעין תפריט המכיל מפתחות וערכים בדומה למילון סטנדרטי, כאשר אנו מגדירים מילון באמצעות סוגריים מסולסלות ({ }), וניגשים אליו ומזינים לו ערכים באמצעות סוגריים מרובעות ([ ]), וכל ערך מופרד מהמפתח על ידי סימן נקודותיים ( : ), והפריטים מופרדים בפסיק (,)
מפתח במילון יכול להיות מרוב סוגי הנתונים, אך בדרך כלל יופיע נתון מסוג מחרוזת או מספר, אך הערך יכול להיות מכל אובייקט אשר קיים ב-Python
לגשת לערכים במילון Dictionary
על מנת לגשת לאלמנטים במילון dictionary יש להשתמש בסימן החיתוך [ ] עם שם המפתח בתוכו על מנת לייבא את הערך הרצוי, כפי שניתן לראות בדוגמה הבאה:
dict = {'Name': 'Mozes', 'Age': 43, 'Class': 'First'} print ("dict['Name']: ", dict['Name']) print ("dict['Age']: ", dict['Age'])
dict['Name']: Mozes
dict['Age']: 43
כמובן שאם נשתמש בשם מפתח שלא קיים נקבל הודעת שגיאה.
עדכון מילון Dictionary
ניתן לעדכן ערכים במילון, למחוק, להוסיף ועוד. לדוגמא:
dict = {'Name': 'Mozes', 'Age': 43, 'Class': 'First'}; dict['Age'] = 36; # update existing entry dict['School'] = "www.g4a.co.il" # Add new entry print ("dict['Age']: ", dict['Age']) print ("dict['School']: ", dict['School']) print (dict)
dict['Age']: 36
dict['School']: www.g4a.co.il
{'Name': 'Mozes', 'Age': 36, 'Class': 'First', 'School': 'www.g4a.co.il'}
מחיקת אלמנטים מתוך רשימה List
ניתן למחוק אלמנטים בודדים מתוך מילון, או למחוק את התכולה של מילון או למחוק מילון בשלמותו:
dict = {'Name': 'Mozes', 'Age': 43, 'Class': 'First'}; del dict['Name'] # remove entry with key 'Name' dict.clear() # remove all entries in dict del dict # delete entire dictionary print ("dict['Age']: ", dict['Age']) print ("dict['School']: ", dict['School'])
כמובן שהתוכנית החזירה לנו הודעת שגיאה, הרי לא ניתן להדפיס מילון או ערך שכבר מחקנו.
:(Traceback (most recent call last
File "main.py", line 6, in
(['print ("dict['Age']: ", dict['Age
TypeError: 'type' object is not subscriptable
תכונות של מפתח במילון
אין מגבלות על ערכים במילון והם יכולים להיות משויכים לאובייקט מכל סוג נתונים בשפת Python, אך מפתחות לעומת זאת, חייבים להיות קבועים – כלומר לא משתנים, ולכן הם יכולים להיות רק מספרים, מחרוזות או tuple, ולכן הדוגמה הבאה איננה תקינה ותחזיר לנו שגיאה:
dict = {['Name']: 'Mozes', 'Age': 43} print ("dict['Name']: ", dict['Name'])
:(Traceback (most recent call last
<File "main.py", line 9, in <module
{dict = {['Name']: 'Mozes', 'Age': 43
'TypeError: unhashable type: 'list
כמו כן לא ניתן לאכסן יותר מפריט אחד במפתח אחד, שזה אומר שגם לא ניתן לשכפל מפתח. כך שאם ננסה להזין ערך שני למפתח, הערך שנזין בפעם השנייה יהיה הסופי:
dict = {'Name': 'Mozes', 'Age': 43, 'Class': 'First', 'Name': 'Jacob'}; print (dict)
{'Class': 'First', 'Age': 43, 'Name': 'Jacob'}