Coding for KidsCoding for Kids
שלבים יצירתייםאתגריםמדריך למורים
הצבע על תכונות
קורס פיתוח מתקדם בפייתון
פרק
>
רמה

רשימות מתקדמות
הבנות רשימות

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

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

Guide

מטרה

אסוף ומיין את כל ירקות השורש במזווה כדי שתוכל לאחסן אותם במקום הנכון באמצעות list comprehensions.

במזווה יש כמה שקיות מלאות בירקות שורש שיש למיין, כאשר מדובר ב: potatoes, onions ו-garlic. סביר להניח שיש ירקות שהתקלקלו. הסר את הירקות הטובים ואחסן אותם בקופסאות הייעודיות להם.

על מנת להשיג זאת עליך לזהות מה נמצא בכל שקית. קיימים שלושה קבועי רשימות שמחזיקים את המידע של כל שקית, אשר נקראים: left_sack, middle_sack, right_sack. קבועי הרשימות הללו מתאימים לשקיות על השדה במיקומים המפורטים לפי שמם.

לך למיקום של הסימנים עם X מוארים שמול כל שקית והשתמש בפונקציה speak() כדי לזהות את תוכן כל שקית באמצעות הקבועים, לדוגמה: player.speak(left_sack). ברגע שתזהה את התוכן בכל שקית, זהה את הפריטים שצריך להסיר - כגון ירקות עם: "Bad", "Spoiled" או "Rotten" בשם שלהם.

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

מתוך שלושת קבועי הרשימות: left_sack, middle_sack, right_sack צור שלוש רשימות חדשות הקרויות: potatoes, onions ו-garlic שיכילו רק את הפריטים הרצויים. List Comprehensions מאפשרות ליצור רשימות חדשות מבלי לכתוב הרבה קוד, לדוגמה:

# Original list sack = ["Potatoes", "Sweet Potatoes", "Spoiled Potatoes" ] # List Comprehension potatoes = [x for x in sack if not "Spoiled" in x] # This will create a list named potatoes with: # ["Potatoes", "Sweet Potatoes"]

בדוגמה לעיל, הרשימה בשם potatoes נוצרת מתוך הרשימה בשם sack ומכילה רק את ["Potatoes", "Sweet Potatoes"], תוך החרגת "Spoiled Potatoes". הדבר מושג על ידי יצירת לולאת for עצמאית, כאשר המשתנה x משמש כאינדיקטור לעבור על הרשימה, ובאמצעות משפטי for / in כדי לזהות ולהחריג את האלמנט הלא רצוי, כלומר כל מחרוזת המכילה את המילה "Spoiled".

לסיכום, בדוק אם קבועי הרשימות מכילים את המילה "Bad", "Spoiled" או "Rotten" באמצעות הפונקציה speak(), וצור את הרשימות potatoes, onions ו-garlic בעזרת List Comprehensions תוך הסרת האלמנטים הלא רצויים שמצאת בכל רשימה.

לאחר שהרשימות נוצרו, לך אל שלוש הסמלים עם X זהובים שמול הקופסאות עם השלטים של הירקות, והנח את הרשימות, באמצעות הפונקציה place(), בקופסאות המתאימות כדי להשלים את השלב. המיקומים מופיעים על השלטים, כאשר onions בקופסה השמאלית, potatoes בקופסה האמצעית ו-garlic בקופסה השמאלית.

ספר קוד