רשימות
טיפוס
הנתונים השמיש ביותר – "סוס העבודה" של התכנות בפיתון, הן
הרשימות
. טיפוס זה מקביל לטיפוס המערך בשפת perl, אך הוא חזק יותר מטיפוסי המערכים ב-C או ב JAVA.
תפקידו של טיפוס הרשימה, פשוטו כמשמעו – להחזיק רשימה מסודרת
של נתונים – האלמנטים.
הגדרת רשימה
>>> li = ["a", "b", "mpilgrim", "z", "example"]
(1)
>>>
li
['a', 'b', 'mpilgrim', 'z', 'example']
>>> li[0] (2)
'a'
>>> li[4] (3)
'example'
העבירו את העכבר על שורות הקוד המסומנות כדי לקבל
הסברים
הגדרת רשימה בת 5 אלמנטים – נעשית על ידי כתיבת האיברים בתוך
סוגריים מרובעים, מופרדים בפסיקים. הנתונים שומרים על הסדר בו הוצבו
ברשימה.
ניתן להשתמש ברשימה כמו במערך, כאשר מספרו הסידורי של האיבר
הראשון הוא 0. פירוש הדבר, לאלו מכם שאינם מתמצאים במערכים, גישה
ישירה לערך ברשימה על ידי כתיבת סוגריים מרובעים ובהם מספר הערך
מימין לשם הרשימה.
מספרו הסידורי של הערך האחרון ברשימה יהיה קטן ב-1 ממספר האיברים
בה, כיוון שהספירה מתחילה מ-0.
מספרים סידוריים שליליים
>>> li
['a', 'b', 'mpilgrim', 'z', 'example']
>>> li[-1] (1)
'example'
>>> li[-.3] (2)
'mpilgrim'
העבירו את העכבר על שורות הקוד המסומנות
כדי לקבל הסברים
הצבת מספר סידורי שלילי מאפשרת גישה לאיברים בספירה לאחור
מזנב הרשימה. האיבר האחרון של כל רשימה הוא בעל מספר סידורי – 1 (בנוסף למספר הסידורי הרגיל).
ניתן לחשב זאת כך : li[-n] == li[len(li) - n]
. (len()
היא פונקציה המחזירה את מספר
האיברים בכל רשימה, או מבנה נתונים אחר(.
יצירת תתי רשימות (slicing)
>>> li
['a', 'b', 'mpilgrim', 'z', 'example']
>>> li[1:3]
['b', 'mpilgrim']
>>> li[1:-1]
['b', 'mpilgrim', 'z']
>>> li[0:3]
['a', 'b', 'mpilgrim']
העבירו את העכבר על שורות הקוד המסומנות כדי לקבל
הסברים
ניתן לקבל לתתי-רשימות מתוך רשימה על ידי הגדרת שני אינדקסים,
מופרדים על ידי נקודותיים. הערך המוחזר מביטוי כזה יהיה רשימה המכילה
את האלמנטים של הרשימה המקורית לפי הסדר החל מהאינדקס הנתון הראשון
( li[1] בדוגמה זו) ועד
אך לא כולל האינדקס הנתון השני (li[3] בדוגמה(.
ניתן להציב גם מיקומים שליליים.
שימ/י לב שli[0:3] לא מחזיר את כל
הרשימה. כאמור, האינדקס הנתון שני מסמן את האיבר הראשון אותו לא
נרצה בתת הרשימה המוחזרת.
קיצורים ביצירת תתי רשימות
>>> li
['a', 'b', 'mpilgrim', 'z', 'example']
>>> li[:3] (1)
['a', 'b', 'mpilgrim']
>>> li[3:] (2)
['z', 'example']
>>> li[:] (3)
['a', 'b', 'mpilgrim', 'z', 'example']
העבירו את העכבר על שורות הקוד המסומנות כדי לקבל
הסברים
ניתן להשמיט את המיקום 0, ולא לכתוב כלום במקומו. Li[:3] זהה ל- li[0:3]. זה מחזיר את כל האיברים עד ולא כולל איבר מספר 3.
באופן סימטרי ניתן לקבל את כל האיברים מאיבר מספר שלוש ואילך.
השארת שני הצדדים ריקים מחזירה עותק מלא של הרשימה, על כל
איבריה. פעולה זו מעתיקה למעשה את הרשימה לרשימה חדשה – בניגוד לפעולת
השמה למשתנה חדש, בה המשתנה החדש יצביע למעשה לרשימה המקורית, כמו
שניתן לראות בדוגמה הבאה:
>>> li = ["a", "b",
"c", "d", "E"]
>>> la = li
>>> la
['a', 'b', 'c', 'd', 'E'] >>> la[0] =
'A'
>>> li
['A', 'b', 'c', 'd', 'E']
>>> lb = li[:]
>>> lb[1] = 'A'
>>> lb
['A', 'A', 'c', 'd', 'E']
>>> la
['A', 'b', 'c', 'd', 'E']
|