Skip to content

Commit 786dc18

Browse files
committed
Split Dictionary into two notebooks, finalize the first one
1 parent 6e3cb28 commit 786dc18

File tree

2 files changed

+152
-94
lines changed

2 files changed

+152
-94
lines changed

week4/2_Dictionaries.ipynb

Lines changed: 3 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -851,92 +851,6 @@
851851
"</div>"
852852
]
853853
},
854-
{
855-
"cell_type": "markdown",
856-
"metadata": {},
857-
"source": [
858-
"## <span style=\"text-align: right; direction: rtl; float: right; clear: both;\">מחיקת איבר במילון</span>"
859-
]
860-
},
861-
{
862-
"cell_type": "markdown",
863-
"metadata": {},
864-
"source": [
865-
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
866-
"לפעמים עולה צורך למחוק ממילון מפתח ואת הערך שקשור אליו.<br>\n",
867-
"כפי שאולי ניחשתם, אין אפשרות למחוק רק את המפתח או רק את הערך – הם באים יחד.<br>\n",
868-
"נרצה למחוק מפתח וערך מהמילון כשחשוב לנו לחסוך מקום בזכרון המחשב, או כשהם כבר לא רלוונטיים ומפריעים לנו.\n",
869-
"</p>"
870-
]
871-
},
872-
{
873-
"cell_type": "markdown",
874-
"metadata": {},
875-
"source": [
876-
"### <span style=\"text-align: right; direction: rtl; float: right; clear: both;\">מילת המפתח <code>del</code></span>"
877-
]
878-
},
879-
{
880-
"cell_type": "markdown",
881-
"metadata": {},
882-
"source": [
883-
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
884-
"הדרך הראשונה למחוק מפתח וערך ממילון היא להשתמש במילת המפתח <code>del</code>, שטרם הכרנו.<br>\n",
885-
"מילת המפתח <code>del</code> מגיעה מהמילה <em>delete</em> (למחוק).<br>\n",
886-
"נציין את שם המילון ואת המפתח שנרצה למחוק:\n",
887-
"</p>"
888-
]
889-
},
890-
{
891-
"cell_type": "code",
892-
"execution_count": null,
893-
"metadata": {},
894-
"outputs": [],
895-
"source": [
896-
"loved_animals = {'Alice': 'Cat', 'Mad hatter': 'Hare', 'Achiles': 'Tortoise'}\n",
897-
"del loved_animals['Achiles']\n",
898-
"print(loved_animals)"
899-
]
900-
},
901-
{
902-
"cell_type": "markdown",
903-
"metadata": {},
904-
"source": [
905-
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
906-
"אפשר להשתמש במילת המפתח <code>del</code> גם כדי למחוק תאים מרשימה או למחוק משתנים, למרות שהשימושים הללו נדירים למדי.\n",
907-
"</p>"
908-
]
909-
},
910-
{
911-
"cell_type": "markdown",
912-
"metadata": {},
913-
"source": [
914-
"### <span style=\"text-align: right; direction: rtl; float: right; clear: both;\">הפעולה <code>pop</code></span>"
915-
]
916-
},
917-
{
918-
"cell_type": "markdown",
919-
"metadata": {},
920-
"source": [
921-
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
922-
"פעמים רבות נרצה לקבל את הערך המשויך למפתח שאנחנו מוחקים.<br>\n",
923-
"חיסרון מובהק של <code>del</code> הוא שבשימוש בה, המפתח והערך ימחקו בלי להחזיר שום מידע על הנתונים שנמחקו.<br>\n",
924-
"נוכל לקבל את הערך שנמחק בכל זאת בעזרת הפעולה <code>pop</code>, שחוץ מלמחוק זוג של מפתח וערך לפי המפתח, גם מחזירה את הערך שמחקה:\n",
925-
"</p>"
926-
]
927-
},
928-
{
929-
"cell_type": "code",
930-
"execution_count": null,
931-
"metadata": {},
932-
"outputs": [],
933-
"source": [
934-
"loved_animals = {'Alice': 'Cat', 'Mad hatter': 'Hare', 'Achiles': 'Tortoise'}\n",
935-
"deleted_value = loved_animals.pop('Achiles')\n",
936-
"print(loved_animals)\n",
937-
"print(deleted_value)"
938-
]
939-
},
940854
{
941855
"cell_type": "markdown",
942856
"metadata": {},
@@ -1334,7 +1248,7 @@
13341248
"cell_type": "markdown",
13351249
"metadata": {},
13361250
"source": [
1337-
"### <span style=\"align: right; direction: rtl; float: right; clear: both;\">היסטוגר... מה?</span>"
1251+
"### <span style=\"align: right; direction: rtl; float: right; clear: both;\">פטנט, או ברונו הפיל?</span>"
13381252
]
13391253
},
13401254
{
@@ -1343,7 +1257,8 @@
13431257
"source": [
13441258
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
13451259
"בספרו המפורסם של טולסטוי \"מלחמה ושלום\" מוקד העלילה הוא תקופת הפלישה של נפוליאון לרוסיה.<br>\n",
1346-
"בעזרת הקובץ המצורף war-and-peace.txt, שנמצא בתיקיית resources, נסו למצוא את השנה שמוזכרת הכי הרבה פעמים בספר.\n",
1260+
"לאונרד כס הראשן התערב עם ברונו הפיל שהוא המציא פטנט, שבעזרתו הוא יכול למצוא את המספר שהופיע הכי הרבה פעמים בכל ספר שהוא.<br>\n",
1261+
"השתמשו בקובץ המצורף war-and-peace.txt שנמצא בתיקיית resources, ועזרו לברונו הפיל למצוא את השנה שמוזכרת הכי הרבה פעמים בספר.\n",
13471262
"</p>"
13481263
]
13491264
}

week4/3_Dictionaries_part2.ipynb

Lines changed: 149 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,126 @@
2121
"## <span style=\"text-align: right; direction: rtl; float: right; clear: both;\">הקדמה</span>"
2222
]
2323
},
24+
{
25+
"cell_type": "markdown",
26+
"metadata": {},
27+
"source": [
28+
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
29+
"במחברת האחרונה למדנו שבפייתון ישנו סוג נתונים שנקרא \"מילון\", שמשמש אותנו לאחסון של זוגות נתונים: מפתח, וערך.<br>\n",
30+
"המילון מאפשר לנו לפנות למפתח מסוים, ולאחזר לפיו את הערך שמוצמד אליו.<br>\n",
31+
"במחברת הזו נעסוק בלמידת פעולות נוספות על מילון, ובשילוב שלו עם סוגי נתונים אחרים.\n",
32+
"</p>"
33+
]
34+
},
35+
{
36+
"cell_type": "markdown",
37+
"metadata": {},
38+
"source": [
39+
"## <span style=\"text-align: right; direction: rtl; float: right; clear: both;\">מחיקת איבר במילון</span>"
40+
]
41+
},
42+
{
43+
"cell_type": "markdown",
44+
"metadata": {},
45+
"source": [
46+
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
47+
"לפעמים עולה צורך למחוק ממילון מפתח ואת הערך שקשור אליו.<br>\n",
48+
"כפי שאולי ניחשתם, אין אפשרות למחוק רק את המפתח או רק את הערך – הם באים יחד.<br>\n",
49+
"נרצה למחוק מפתח וערך מהמילון כשחשוב לנו לחסוך מקום בזכרון המחשב, או כשהם כבר לא רלוונטיים ומפריעים לנו.\n",
50+
"</p>"
51+
]
52+
},
53+
{
54+
"cell_type": "markdown",
55+
"metadata": {},
56+
"source": [
57+
"### <span style=\"text-align: right; direction: rtl; float: right; clear: both;\">מילת המפתח <code>del</code></span>"
58+
]
59+
},
60+
{
61+
"cell_type": "markdown",
62+
"metadata": {},
63+
"source": [
64+
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
65+
"הדרך הראשונה למחוק מפתח וערך ממילון היא להשתמש במילת המפתח <code>del</code>, שטרם הכרנו.<br>\n",
66+
"מילת המפתח <code>del</code> מגיעה מהמילה <em>delete</em> (למחוק).<br>\n",
67+
"נציין את שם המילון ואת המפתח שנרצה למחוק:\n",
68+
"</p>"
69+
]
70+
},
71+
{
72+
"cell_type": "code",
73+
"execution_count": null,
74+
"metadata": {},
75+
"outputs": [],
76+
"source": [
77+
"loved_animals = {'Alice': 'Cat', 'Mad hatter': 'Hare', 'Achiles': 'Tortoise'}\n",
78+
"del loved_animals['Achiles']\n",
79+
"print(loved_animals)"
80+
]
81+
},
82+
{
83+
"cell_type": "markdown",
84+
"metadata": {},
85+
"source": [
86+
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
87+
"אפשר להשתמש במילת המפתח <code>del</code> גם כדי למחוק תאים מרשימה או למחוק משתנים, למרות שהשימושים הללו נדירים למדי.\n",
88+
"</p>"
89+
]
90+
},
91+
{
92+
"cell_type": "markdown",
93+
"metadata": {},
94+
"source": [
95+
"### <span style=\"text-align: right; direction: rtl; float: right; clear: both;\">הפעולה <code>pop</code></span>"
96+
]
97+
},
98+
{
99+
"cell_type": "markdown",
100+
"metadata": {},
101+
"source": [
102+
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
103+
"פעמים רבות נרצה לקבל את הערך המשויך למפתח שאנחנו מוחקים.<br>\n",
104+
"חיסרון מובהק של <code>del</code> הוא שבשימוש בה, המפתח והערך ימחקו בלי להחזיר שום מידע על הנתונים שנמחקו.<br>\n",
105+
"נוכל לקבל את הערך שנמחק בכל זאת בעזרת הפעולה <code>pop</code>, שחוץ מלמחוק זוג של מפתח וערך לפי המפתח, גם מחזירה את הערך שמחקה:\n",
106+
"</p>"
107+
]
108+
},
109+
{
110+
"cell_type": "code",
111+
"execution_count": null,
112+
"metadata": {},
113+
"outputs": [],
114+
"source": [
115+
"loved_animals = {'Alice': 'Cat', 'Mad hatter': 'Hare', 'Achiles': 'Tortoise'}\n",
116+
"deleted_value = loved_animals.pop('Achiles')\n",
117+
"print(loved_animals)\n",
118+
"print(deleted_value)"
119+
]
120+
},
121+
{
122+
"cell_type": "markdown",
123+
"metadata": {},
124+
"source": [
125+
"<div class=\"align-center\" style=\"display: flex; text-align: right; direction: rtl; clear: both;\">\n",
126+
" <div style=\"display: flex; width: 10%; float: right; clear: both;\">\n",
127+
" <img src=\"images/exercise.svg\" style=\"height: 50px !important;\" alt=\"תרגול\"> \n",
128+
" </div>\n",
129+
" <div style=\"width: 70%\">\n",
130+
" <p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
131+
" כתבו פונקציה שמקבלת מילון, ומחזירה מילון הפוך.<br>\n",
132+
" היעזרו בפעולות שלמדתם על מילון.\n",
133+
" </p>\n",
134+
" </div>\n",
135+
" <div style=\"display: flex; width: 20%; border-right: 0.1rem solid #A5A5A5; padding: 1rem 2rem;\">\n",
136+
" <p style=\"text-align: center; direction: rtl; justify-content: center; align-items: center; clear: both;\">\n",
137+
" <strong>חשוב!</strong><br>\n",
138+
" פתרו לפני שתמשיכו!\n",
139+
" </p>\n",
140+
" </div>\n",
141+
"</div>"
142+
]
143+
},
24144
{
25145
"cell_type": "markdown",
26146
"metadata": {},
@@ -107,6 +227,29 @@
107227
"print(deleted_value)"
108228
]
109229
},
230+
{
231+
"cell_type": "markdown",
232+
"metadata": {},
233+
"source": [
234+
"<div class=\"align-center\" style=\"display: flex; text-align: right; direction: rtl; clear: both;\">\n",
235+
" <div style=\"display: flex; width: 10%; float: right; clear: both;\">\n",
236+
" <img src=\"images/exercise.svg\" style=\"height: 50px !important;\" alt=\"תרגול\"> \n",
237+
" </div>\n",
238+
" <div style=\"width: 70%\">\n",
239+
" <p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
240+
" כתבו פונקציה שמקבלת מילון, ומחזירה מילון הפוך.<br>\n",
241+
" היעזרו בפעולות שלמדתם על מילון.\n",
242+
" </p>\n",
243+
" </div>\n",
244+
" <div style=\"display: flex; width: 20%; border-right: 0.1rem solid #A5A5A5; padding: 1rem 2rem;\">\n",
245+
" <p style=\"text-align: center; direction: rtl; justify-content: center; align-items: center; clear: both;\">\n",
246+
" <strong>חשוב!</strong><br>\n",
247+
" פתרו לפני שתמשיכו!\n",
248+
" </p>\n",
249+
" </div>\n",
250+
"</div>"
251+
]
252+
},
110253
{
111254
"cell_type": "markdown",
112255
"metadata": {},
@@ -270,9 +413,9 @@
270413
"metadata": {},
271414
"source": [
272415
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
273-
"אנחנו רוצים ליצור תוכנה לניהול ספרייה, בה הספרים מחולקים לפי שם המחבר.<br>\n",
274-
"בשלב הנוכחי ביקשו מאיתנו לשמור רק את שמות הספרים עבור כל מחבר.<br>\n",
275-
"אנחנו רוצים את האפשרות לשלוף את שמות הספרים לפי שם המחבר, ושיהיה קל להוסיף ולהוריד ספרים מרשימת ספריו של כל מחבר.\n",
416+
"אנחנו רוצים ליצור תוכנה לניהול ספרייה, בה ניתן למצוא ספרים לפי שם המחבר.<br>\n",
417+
"בשלב הנוכחי ביקשו מאיתנו לשמור עבור כל ספר רק את שמו, ללא פרטים נוספים כמו מלאי או שנת הוצאה לאור.<br>\n",
418+
"אנחנו נצטרך לתכנת את האפשרות לשלוף את שמות הספרים לפי שם המחבר, ושיהיה קל להוסיף ולהוריד ספרים מרשימת ספריו של כל מחבר.\n",
276419
"</p>"
277420
]
278421
},
@@ -286,8 +429,8 @@
286429
" </div>\n",
287430
" <div style=\"width: 70%\">\n",
288431
" <p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
289-
" השקיעו 5 דקות כדי לחשוב איך הייתם בונים ספרייה שכזו בעזרת סוגי הנתונים שלמדתם.<br>\n",
290-
" בונוס: הגדירו ספרייה שכזו וממשו פונקציה שמאפשרת להוסיף ולהסיר ספרים עבור כל מחבר.\n",
432+
" השקיעו 5 דקות כדי לחשוב איך הייתם מממשים ספרייה שכזו בעזרת סוגי הנתונים שלמדתם.<br>\n",
433+
" בונוס: כתבו כיצד ניתן לממש ספרייה שכזו, וממשו פונקציה שמאפשרת להוסיף ולהסיר ספרים עבור כל מחבר.\n",
291434
" </p>\n",
292435
" </div>\n",
293436
" <div style=\"display: flex; width: 20%; border-right: 0.1rem solid #A5A5A5; padding: 1rem 2rem;\">\n",
@@ -324,7 +467,7 @@
324467
"source": [
325468
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
326469
"עבור הדרישה הראשונה, נשמע שהמבנה המתאים ביותר הוא מילון שממפה את שם המחבר לרשימת הספרים שלו.<br>\n",
327-
"עבור הדרישה השנייה, נשמע שהמבנה המתאים ביותר יהיה רשימה – סוג גמיש שקל לערוך את האיברים שבו (לעומת tuple, לדוגמה).\n",
470+
"עבור הדרישה השנייה, נשמע שהמבנה המתאים ביותר יהיה רשימה – סוג גמיש שקל לערוך את האיברים שבו (לעומת tuple, נניח).\n",
328471
"</p>"
329472
]
330473
},

0 commit comments

Comments
 (0)