חיתוך רשימות — חלק 2
חלק מהיחידה יסודות במסלול ה-Python של Coddy. שיעור 65 מתוך 77.
לחיתוך יש פרמטר צעד נוסף: lst[start:stop:step], לדוגמה, נתבונן ברשימה הזאת:
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]מקבל כל איבר שני מהאינדקס 1 עד 8:
print(numbers[1:8:2])
# פלט: [1, 3, 5, 7]מחזיר כל איבר שלישי החל מאינדקס 2:
print(numbers[2::3])
# פלט: [2, 5, 8]חיתוך תומך גם באינדקסים שליליים.
ספירה מהסוף:
print(numbers[-3:])
# פלט: [7, 8, 9]כאן, -3 פירושו "להתחיל 3 מיקומים מהסוף"
ספירה עד הסוף:
print(numbers[:-2])
# פלט: [0, 1, 2, 3, 4, 5, 6, 7]כאן, -2 פירושו "לעצור 2 מיקומים לפני הסוף" (לא כולל)
היפוך באמצעות צעד שלילי:
print(numbers[::-1])
# פלט: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]- מקום ריק לפני ה־
:פירושו „התחל מההתחלה” (או „התחל מהסוף” כאשר הצעד שלילי) - מקום ריק בין סימני
:פירושו „המשך עד הסוף” (או „המשך עד ההתחלה” כאשר הצעד שלילי) - -1 פירושו „התקדם לאחור, צעד אחד בכל פעם”
אתגר
קלצרו תוכנית שמקבלת רשימה כקלט (נתונה) ומדפיסה שלוש רשימות חדשות על סמך פעולות הפריסה הבאות:
- רשימה המכילה כל איבר שלישי, החל באינדקס 1 (האיבר השני)
- רשימה המכילה את כל האיברים, מהאיבר השישי ועד הראשון, בסדר הפוך
- רשימה המכילה כל איבר שני, החל מאמצע הרשימה ועד סופה
נסו בעצמכם
lst = input().split(",")
# כתבו את הקוד שלכם למטההשיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
תרגלו בעצמכם: קומפיילר Python אונליין