רשימה שומרת כמה ערכים לפי הסדר: ציונים, שמות של שלבים, טמפרטורות. ניגשים לכל ערך לפי המקום שלו, ומתחילים לספור מ-0. כאן מזיזים את האינדקס, רואים איזה ערך נבחר, ומגלים מה קורה כשיוצאים מהרשימה. כדאי להכיר קודם את הלולאות בפייתון, ואחר כך לעבור למציאת באגים.
scores = [7, 9, 4, 8]
print(scores[0]) # 7
print(scores[-1]) # 8
print(len(scores)) # 4
scores.append(10) # [7, 9, 4, 8, 10]
רשימה כותבים בסוגריים מרובעים, עם פסיקים. המקום של כל ערך נקרא אינדקס. הראשון הוא 0, השני 1, וכן הלאה.
scores[-1] הוא האחרון, scores[-2] הלפני אחרון. len(scores) אומר כמה ערכים יש.
append מוסיף ערך לסוף. for s in scores: עובר על כל הערכים לפי הסדר, ובכל סיבוב s הוא הערך הבא.
IndexError.המחוון הראשון קובע כמה ציונים יש ברשימה, והשני קובע איזה אינדקס מדפיסים בסוף. מעל כל תא כתוב האינדקס שלו, ומתחת האינדקס השלילי. לחצו "שורה הבאה" כדי לעקוב.
נסו את אלה:
אפשר לשנות את הקוד ולהריץ פייתון אמיתי. בפעם הראשונה הטעינה לוקחת כמה שניות.
כדי לקבל את הערך הראשון כותבים 0.
✗ מקבלים את השני
print(scores[1])✓ הראשון
print(scores[0])ברשימה באורך 4 אין אינדקס 4. האחרון הוא len פחות 1, או פשוט 1-.
✗ IndexError
print(scores[len(scores)])✓ האחרון
print(scores[-1])append היא פעולה של הרשימה. כותבים נקודה, append, וסוגריים עגולים.
✗ לא עובד
scores.append = 10
scores + 10✓ מוסיף לסוף
scores.append(10)אם כל הערכים שליליים, 0 ינצח בטעות. מתחילים מהערך הראשון ברשימה.
✗ עלול לטעות
best = 0✓ בטוח
best = temps[0]יש רשימה של טמפרטורות, ומוסיפים לה עוד מדידה. איך מוצאים את הגבוהה ביותר בלי max? שומרים את "הכי גבוה עד עכשיו", ובכל סיבוב בודקים אם הערך הנוכחי גבוה ממנו.
האינדקס אומר כמה צעדים זזים מתחילת הרשימה. הערך הראשון נמצא בהתחלה, אפס צעדים ממנה, ולכן האינדקס שלו 0. כך זה ברוב שפות התכנות. נסו במעבדה.
זו השגיאה שפייתון נותנת כשמבקשים אינדקס שאין ברשימה. ברשימה באורך 3 האינדקסים הם 0, 1, 2, וגם 1-, 2-, 3-. כל מספר אחר נותן את השגיאה הזו.
בהרבה שפות קוראים לזה מערך. בפייתון זו רשימה, והיא גמישה: אפשר להוסיף לה ערכים עם append, והיא גדלה לבד. תרגלו למטה.