שיעורי מודול (2/4)
טופלים ופרוק
טופל הוא רצף מסודר ובלתי ניתן לשינוי: ברגע שנוצר, אתה יכול כבר לא משנה את המרכיבים שלו. זה כתוב בסוגריים (למרות מה שבעצם מגדיר את זה הוא הפסיק).
יצירת טופל
vuota = ()
una = (42,) # ATTENZIONE: senza virgola, (42) è solo 42 fra parentesi
coords = (10, 20)
mista = ("Ada", 36, True)גישה לפי אינדקס וחיתוך פועלת בדיוק כמו עבור רשימות: coords[0],
coords[-1], mista[:2].
מתי להשתמש בטופל במקום ברשימה
- כאשר הערך מייצג אוסף קבוע שאסור לו להשתנות
(קואורדינטות, תאריך כ-
(year, month, day), גרסה(1, 2, 3)). - כאשר אתה צריך להשתמש בערך בתור מפתח מילון או כרכיב של
a
set: ניתן להשתמש רק באובייקטים בלתי ניתנים לשינוי (ניתנים לגיבוש). - כאשר אתה רוצה לאותת לקורא הקוד שהערך זה הוא "קפוא".
Unpacking: התכונה שמשנה את אופן הכתיבה של Python
nome, anni = ("Ada", 36)
nome # 'Ada'
anni # 36זה עובד גם ללא סוגריים (הפסיק הוא זה שמגדיר את טופל):
x, y = 10, 20והוא מאפשר החלפה ללא משתנה זמני, פייתון טהור ניב:
a, b = 1, 2
a, b = b, a
a, b # (2, 1)פורקים עם * (מנוחה)
כאשר אתה רוצה ללכוד את "הראשון והשאר" או "הראשון, האחרון, האמצע":
primo, *resto = [1, 2, 3, 4, 5]
primo # 1
resto # [2, 3, 4, 5]
primo, *centro, ultimo = [1, 2, 3, 4, 5]
centro # [2, 3, 4]זה נקרא מקצה בכוכב: הכוכב אוסף את כל מה נשאר ברשימה.
מלכודת tuple אלמנט יחיד
(42) הוא לא טופל, זה המספר 42 בתוך סוגריים. לעשות א
תוספת של רכיב בודד אתה צריך את הפסיק: (42,). בלי זה, כל פעולה
נכשל בצורה מבלבלת.
x = (42)
type(x) # <class 'int'>
x = (42,)
type(x) # <class 'tuple'>טפולים עם אלמנט יחיד
כדי ליצור טופל המכיל רק אלמנט אחד, סוגריים בלבד אינם מספיקים: עליך להכניס פסיק נגרר, למשל t = (42,). ללא הפסיק, Python מתייחס לסוגריים כאל קיבוץ מתמטי פשוט, ויוצר מספר שלם רגיל 42.
נסה את זה
בהינתן `a = 1` ו-`b = 2`, החלף את הערכים שלהם בשורה אחת (פירוק tuple) והעריך את tuple (a, b).
הצג רמז
a, b = b, a
הפתרון זמין לאחר 3 ניסיונות
סקירת התרגיל
מתוך הרשימה `voti = [7, 5, 8, 6, 9]`, השתמש ב- unpacking כדי לחלץ את כיתה א' ל'פרימו', את האחרונה ל'ultimo' ואת הנותרים ל'centro'. הערך `(primo, centro, ultimo)`.
הצג רמז
primo, *centro, ultimo = voti → primo=7, centro=[5,8,6], ultimo=9.
הפתרון זמין לאחר 3 ניסיונות
אתגר נוסף
Given the tuple `point = (4, 5, 6)`, use unpacking to assign the three values to the variables `x`, `y`, `z` respectively. Then, calculate the sum of `x`, `y`, and `z` and store it in `coord_sum`. Finally, evaluate `coord_sum`.
הצג רמז
השתמש ב-x, y, z = point כדי לחלץ את שלוש הקואורדינטות במשפט יחיד.
הפתרון זמין לאחר 3 ניסיונות