מחברת סיכום: שובו של קשטן

בתרגיל מבקשים את הפלט הבא:

  • עבור הקריאה add_inventory({'cheese': 2, 'milk': 1}, cheese=3, chocolate=5)
    יוחזר המלאי: {‘cheese’: 5, ‘chocolate’: 5, ‘milk’: 1}
  • עבור הקריאה add_inventory({'refrigerator': 7, 'goat': 1}, honey=2)
    יוחזר המלאי: {‘honey’: 2, ‘refrigerator’: 7, ‘goat’: 1}

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

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

הקלט לא הייתה השאלה, רק ה return, כי הצגתם את זה בצורה לא אחידה.
אם אין משמעות, אז מעולה. פחות שורות.

לייק 1

כלומר, נגיד הפלט {‘cheese’: 5, ‘milk’: 1, ‘chocolate’: 5} במקום {‘cheese’: 5, ‘chocolate’: 5, ‘milk’: 1} זה בסדר?
או חייבים כמו בדוגמא?

זה בסדר גמור (תזכור שאין חשיבות לסדר במילון…)

לייק 1

יכול להיות שזה באמת בסדר כמו שאור אומר, אבל למה שתהיה בעיה להדפיס כמו בדוגמא? :slight_smile:

האם צריך להיות פלט?(RETURN) או שמספיק “להוסיף למלאי” המקורי הרי?
כרגע עשיתי שישנה את המקורי, אבל גם יחזיר אותו… לא ברור מה היה אמור לעשות באמת

ובנוסף, זה הגיוני שהפתרון באורך 3 שורות?? זה עובד לי…

כן, זה לגמרי הגיוני.
וכן, בד"כ נעדיף לעשות return מפונקציות

אז להחזיר מילון חדש ממש? או שזה בסדר שהחזרתי את המילון המקורי עם השינוי?

בד"כ עדיף להחזיר טיפוס נתונים חדש ולא להשפיע על המקורי שהועבר לפונ’

אחלה, אשנה את הקוד. סה"כ להוסיף שורה קטנה.
פשוט בניסוח (הנה עוד תיקון לעתיד:slight_smile: ) רשום משהו בסגנון “הוסיפו למלאי” לא ליד זה כרגע אבל מתוך הכתוב היה נשמע שצריך לשנות, בכל זאת מדובר ב-mutable ואולי זה פונקציה כחלק מניהול גדול של החנות ואז דווקא יותר הגיוני לכאורה לשנות את המבנה ולא כל פעם להקצות מקום חדש בזיכרון לא?

כן, לא היה לי זמן לעבור מחדש על הניסוח, אבל אם כך זה כתוב אני מסכים איתך שיש מקום לשתי השיטות :slight_smile:

מאיפה אני מביא את המילון של המלאי?

זה הארגומנט הראשון שהפונקציה מקבלת

לייק 1

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

אבל זה מראה כמה חשוב להבין מה עדיף מתי ושזה לא תמיד אותו דבר