מילונים בפייתון

  • פותח הנושא et28
  • פורסם בתאריך

et28

New member
מילונים בפייתון

כמה שאלות שלא ברורות לי בפייתון, בנושא מילונים:
1. מה הצורך בזה? למה לא לעשות רשימה ופשוט לדעת שיש לרשימה מפתחות וערכים- מה שנותן גישה קלה יותר, אפשר להציג רק חלק מהנתונים ועוד יתרונות...
2. האם ניתן לתת למפתח אחד מספר ערכים? נגיד תעודת זהות וכתובות שגר בהם...
3. יש את הקוד הבא:
קוד:
grades = {'foo': 80, 'bar': 90}
for (name, grade) in grades.items(): 
	print 'The grade of ' + name + ' is ' + str(grade)
באופן כללי אני יודע שכל לולאת FOR עושה לולאה על משתנה אחד, ופה יש כאילו שתי לולאות על שני משתנים.... מה קורה פה? איך זה יכול להיות?

תודה רבה לעונים!!
 

BravoMan

Active member
תשובות:

1. "מילון" הוא מבנה נתונים שלא קשור ספציפית ל-Python ולא ייחודי לשפה.
Python פשוט נותן מימוש פשוט ונוח שלו.
&nbsp
למה זה טוב?
לכל מצב שאתה צריך לאחסן ולשלוף ערכים לפי מפתח בצורה מהירה ויעילה.
&nbsp
להסבר רחב יותר ממליץ לך על קורס "מבני נתונים".
&nbsp
2. לא. הרעיון במילון הוא שלכל מפתח יש ערך אחד.
אבל, הערך הזה יכול להיות מבנה נתונים בעצמו, למשל מילון, רשימה, או tuple.
&nbsp
3. אין פה שתי לולאות.
יש פה לולאה אחת שעוברת על רשימת ערכים מסוג tuple.
tuple הוא קבוצת ערכים לא קשורים, שיכולים להיות אפילו מטיפוס שונה, שניתנת לפירוק בקלות בשפת python.
&nbsp
למידע נוסף, קרא כאן:
https://www.tutorialspoint.com/python/python_tuples.htm
 

פרסאוס

New member


 

et28

New member
תודה על התשובה

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

בכל מקה תודה!
 

BravoMan

Active member
תראה, בדוגמאות שהצגת כאן כרגע,

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