פייתון/פייתון גרסה 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'}

דרכים ליצירת מילון[עריכה]

  1. פונקצית dict.

ידנית באמצעות נקודתיים[עריכה]

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

סריקת מחרוזת באמצעות מילון[עריכה]

כאשר אנחנו רוצים לבדוק האם אות נמצאת בטקסט נוכל להעזר בבנית מילון שיסרוק את מופיעים של מילה. המילון יצור מפתחות של אותיות ובערך ימנה את מספר המופעים שלו. להרחיב.

ראה גם[עריכה]