בסיסי > טפוסי נתונים > רשומות - רשימות בלתי משתנות

רשומות – רשימות בלתי משתנות (Tuples)

בפיתון ישנו טיפוס נתונים בסיסי נוסף שנקרא tuple, ומהווה רשימה בלתי משתנה (immutable list). מרגע יצירת רשימה כזו, לא ניתן עוד לשנות את תכנה בשום צורה – אך ניתן לגשת אליו למטרת קריאה.

בשפה העברית אין תרגום מדויק למילה tuple. בחרנו להשתמש במילה הקרובה ביותר והיא "רשומה", שתרגומה בדר"כ הוא record. יש לשים לב שהתרגום הוא לצורך נוחות בלבד, ואין בו כדי לרמוז על קשר ממשי בין ה-tuple בפיתון לבין ה-record  בפסקל (אם כי יש דמיון אסוציאטיבי בין השניים).

 הגדרת רשומה

>>> t = ("a", "b", "mpilgrim", "z", "example")
>>> t

('a', 'b', 'mpilgrim', 'z', 'example')

>>> t[0]

'a'

>>> t[.1]

'example'

>>> t[1:3]

('b', 'mpilgrim')

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

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

t = (“element”,)

לרשומות אין מתודות!

רשומות הן טיפוס נתונים בלתי משתנה (immutable) וככזה אין אפשרות לשנותו לאחר הגדרתו.

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

>>> t
('a', 'b', 'mpilgrim', 'z', 'example')
    
>>> t.append("new")

Traceback (innermost last):

File "<interactive input>", line 1, in ?

AttributeError: 'tuple' object has no attribute 'append'

>>> t.remove("z")

Traceback (innermost last):

File "<interactive input>", line 1, in ?

AttributeError: 'tuple' object has no attribute 'remove'

>>> t.index("example")

Traceback (innermost last):

File "<interactive input>", line 1, in ?

AttributeError: 'tuple' object has no attribute 'index'

>>> "z" in t
1

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

 לשם מה, אם כן, צריך בכלל רשומות?

  • ראשית, רשומות מהירות יותר מאשר רשימות. אם את/ה זקוק/ה לרשימה קבועה של ערכים מבלי צורך לשנותה, עדיף להשתמש ברשומות.
  • רשומות יכולות להיות מפתחות של מילון, בניגוד לרשימות.
  • רשומות משמשות ביצירת תבניות של מחרוזות, כפי שנראה בהמשך.

הערה: ניתן להפוך רשימות לרשומות ולהיפך. הפונקציה tuple(somelist) מקבלת רשימה ומחזירה רשומה המכילה את אותם אברים, והפונקציה list(sometuple) בהתאם מקבלת רשומה ומחזירה רשימה המכילה את אותם האיברים.

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