פייתון/פייתון גרסה 3/מילון
מבנה
עריכהמילון (dictionary) הוא טיפוס באמצעותו משייכים מפתח לערך. המפתחות במילון הם לא ממוינים ועם זאת ניתן לסרוק אותו באמצעות פונקצית for (כי הוא iterable).
מגדירים מילון בצורה:
d={}
כאשר items הם האיברים במילון. כל איבר הוא בצורה:
<key>:<value>
כאשר key הוא המפתח, וvalue הוא ערכו.
- המפתח (key) חייב להיות ערך שלא ניתן לשינוי (immutable), הערך יכול להיות משתנה והמילון עצמו נחשב ערך אותו ניתן לשנות.
דוגמה
עריכהלטינית | אנגלית |
---|---|
sapientia | wisdom |
ago | do |
vir | man |
filius | son |
נגדיר את המילים בלטינית להיות המפתחות של הערכים במילון:
>>> a={'sapientia':'wisdom', 'ago': 'do', 'vir':'man', 'filius':'son'}
>>>a
{'sapientia': 'wisdom', 'ago': 'do', 'vir': 'man', 'filius': 'son'}
דרכים ליצירת מילון
עריכהידנית באמצעות נקודתיים
עריכהa={'sapientia':'wisdom'}
שימוש בשיוויון
עריכהדרך נוספת מקובלת היא באמצעות שוויון כאשר מדובר במחרוזת:
>>> a=dict(a=1,b=2,c=3,d=4)
>>> print(a)
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
לולאת for
עריכהd = {}
lst = ['a','b','c','d','e']
for i in range(len(lst)):
d[ lst[i]]=i
print(d)
>>>{'a': 0, 'b': 1, 'c': 2, 'd': 3, 'e': 4}
dict Comprehension
עריכהבדומה לנקודתיים רק שהמילון נוצר באמצעות dict Comprehension
letters = ['a', 'b', 'c']
dict = {letters[i] : i + i for i in range(len(letters))}
print(dict)
>>>{'a': 0, 'b': 2, 'c': 4}
הוספת ושינוי מפתח
עריכה>>> d={a:1,b:2,c:3}
>>> d['d']=4
>>> d
{3: 1, 4: 2, 5: 3, 'd': 4}
>>> d={a:1,b:2,c:3}
>>> d[a]=1232
>>> d
{3: 1232, 4: 2, 5: 3}
מינוי מפתחות ראה פונקצית sort
שליפת ערכים ושימוש באינדקס
עריכהשליפת מפתח מהמילון
עריכה>>> a={'sapientia':'wisdom', 'ago': 'do', 'vir':'man', 'filius':'son'}
>>> list(a.keys())
['sapientia', 'ago', 'vir', 'filius']
שליפת ערך מהמילון
עריכה>>>a['ago']
'do'
>>>
נשם לב כי שליפת איברים היא באמצעות ערך להבדיל מרב היישומים שעד כה השתמשנו אשר שלפו ערך על פי מיקומו.
unpacking
עריכה>>> d={'a':1,'b':3,'c':'4'}
>>> x,y,z = d
>>> x
'a'
>>> y
'b'
>>> z
'c'
סריקת מילון
עריכההדפסת מפתחות
עריכהd = {'a':'1', 'b':'2', 'c':'3'}
# print keys:
for key in d:
print('key num is', key)
>>>key num is a
>>>key num is b
>>>key num is c
הדפסת ערכים
עריכהניתן להתיחס אל קבוצה כאל מילון שהמפתח שלהם הוא המיקום שלהם. ניתן לפנות אל ערכי המילון באופן דומה - רק באמצעות שם המפתח:
d = {'a':'1', 'b':'2', 'c':'3'}
for key in d:
print('vaule num is', d[key])
אפשרות נוספת:
d = {'a':'1', 'b':'2', 'c':'3'}
#print vaules:
for vaule in d.values():
print('vaules are:', vaule)
>>>vaules are: 1
>>>vaules are: 2
>>>vaules are: 3
הדפסת מפתחות וערכים
עריכהd = {'a':'1', 'b':'2', 'c':'3'}
#print key and vaule
for (key, value) in d.items():
print('key and value', key, value)
key and value a 1
key and value b 2
key and value c 3
in
עריכהd = {'a':'1', 'b':'2', 'c':'3'}
'a' in d
>>>True
סריקת מחרוזת באמצעות מילון
עריכהכאשר אנחנו רוצים לבדוק האם אות נמצאת בטקסט נוכל להעזר בבנית מילון שיסרוק את מופיעים של מילה. המילון יצור מפתחות של אותיות ובערך ימנה את מספר המופעים שלו. להרחיב.