פייתון/פייתון גרסה 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}
(ראה גם פייתון/פייתון גרסה 3/List Comprehension)
הוספת ושינוי מפתח
[עריכה]>>> 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
סריקת מחרוזת באמצעות מילון
[עריכה]כאשר אנחנו רוצים לבדוק האם אות נמצאת בטקסט נוכל להעזר בבנית מילון שיסרוק את מופיעים של מילה. המילון יצור מפתחות של אותיות ובערך ימנה את מספר המופעים שלו. להרחיב.