PracticU

הסבר על namedtuple

בלי כתוביותעם כתוביות
PracticU › קורס פייתון - Python › הסבר על namedtuple
מילון מושגים:
אינדקס - מבנה במסד נתונים שמאיץ חיפוש ושליפה. גם מספר המציין מיקום של איבר במערך.
פונקציה - קטע קוד בעל שם שמבצע משימה מוגדרת, מקבל ערכי קלט (פרמטרים) ויכול להחזיר תוצאה. מאפשרת לארגן קוד ולהשתמש בו שוב.
מחרוזת - סוג נתונים שמייצג רצף של תווים, כלומר טקסט, ומשמש לאחסון מילים, משפטים או כל רצף סימנים.
אובייקט - יחידה בתכנות מונחה עצמים שמאגדת נתונים (תכונות) ופעולות (מתודות). נוצר בדרך כלל ממחלקה המשמשת כתבנית.
טבלה - מבנה במסד נתונים שמאחסן נתונים בשורות ועמודות. כל שורה היא רשומה וכל עמודה היא שדה.
עמודה - שדה בטבלת מסד נתונים שמחזיק ערך מסוג מסוים עבור כל שורה, למשל שם או תאריך.
מחלקה - תבנית בתכנות מונחה עצמים שמגדירה אילו נתונים ופעולות יהיו לאובייקטים שנוצרים ממנה.

הסבר על namedtuple
השיעור מציג את namedtuple: טאפל שאפשר לגשת לערכים שלו לפי שמות ולא רק לפי מספרי אינדקס.
השלבים העיקריים
1. הרעיון: namedtuple נראה כמו טאפל, והוא אי-מיוטבל, אבל ניתן לגשת לערכים שלו בשם, כמו במילון.
2. יצירת הטיפוס: קוראים לפונקציה namedtuple עם שם הטיפוס ורשימת השדות, כמחרוזת מופרדת ברווחים או כרשימה. בדוגמה נוצר טיפוס בשם MyData עם השדות First Name, Last Name ו-Age.
3. יצירת מופע: מגדירים אובייקט מהטיפוס, למשל עם שם, שם משפחה וגיל. הערכים נגישים בנקודה, כמו john.first_name, ולא בסוגריים כמו במילון.
4. הדפסה: ההדפסה מציגה את שם הטיפוס ואת שמות השדות עם הערכים.
5. שימושים: מתאים להחזרת ערכים מפונקציות כשרוצים שמות משמעותיים. מודול sqlite3 מחזיר שורות מטבלה בצורה כזו, כך שניתן לגשת לעמודות לפי השם שלהן.
שימו לב
לא ניתן לשנות ערך של namedtuple אחרי היצירה, ולכן כדי לשנות צריך ליצור מופע חדש. כמו טאפל רגיל, גם namedtuple תומך בפעולות count ו-index.
namedtuple מאפשר לכתוב קוד קריא יותר בלי להגדיר מחלקה מלאה.
השיעור הבא בקורס: list comprehension

פרקי ההרצאה: הסבר על namedtuple

  1. 00:00

    מבוא: מה זה Named Tuple

  2. 01:17

    פרמטרים של namedtuple: שם ושדות

  3. 02:13

    יצירת מופע של Named Tuple

  4. 03:12

    גישה לערכים בעזרת שמות השדות

  5. 04:01

    הבדל בגישה: נקודה לעומת מילון

  6. 04:40

    יתרונות וחסרונות של Named Tuple

  7. 05:19

    שימוש ב-Named Tuple עם sqlite3

תמלול ההרצאה: הסבר על namedtuple

הטקסט המלא של הדקות הראשונות בהרצאה «הסבר על namedtuple» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:03

    שלום לכולם, בתיאור הזה נדבר על Named טאפל. אז Named טאפל מאוד מזכיר לנו טאפל. טאפל זה, להזכירכם, זה מבנה נתונים אימיוטיבל, כלומר, ברגע שאני עוצר אותו הוא לא ניתן לשינוי, אבל הוא כמו ליסט, כלומר, האינדקסים שלו הם מספרים רצים, 0 עד האורך שלו.

  2. 00:24

    לעומת זאת, מהשם Named טאפל, אתם יכולים להבין שמדובר במשהו שיש לו name, כלומר הוא טאפל, אבל שאפשר לגשת אליו לא בעזרת מספרים, בעזרת שמות יותר משמעותיים.

  3. 00:39

    בואו נתחיל בליצור איזשהו name-taple כלשהו. ה-ID כבר הכניס לנו אותו. עכשיו, הדרך לעבוד עם name-taple היא קצת שונה מדרך סטנדרטית של נתונים אחרים בפייתר.

  4. 00:57

    הדרך ליצור name-taple היא שונה מדרך יצירה של אובייקטים אחרים, כי אנחנו בעצם יוצרים פה משהו שהוא מלכתחילה נוצר בצורה מסוימת. כלומר, מצד אחד הוא דומה ל-dictionary, כי ניגשים אליו בעזרת אובייקט, בעזרת KeyValue.

  5. 01:14

    מצד שני הוא טאפל, הוא לא ניתן לשינוי לאחר מכן. אז הדרך, בואו קודם כל נראה איך יוצרים name טאפל. אז הפונקציה name טאפל מקבלת שני פרמטרים או יותר.

  6. 01:28

    רק השתיים הראשונים הם חשובים ורק עליהם אנחנו נדבר. הטייפ ניים זה בעצם השם של הטאפל, אפשר לקרוא לו mydata, שזה בעצם השם שלו ואנחנו תכף נראה איפה הוא מופיע.

  7. 01:48

    וה-Field Names יכול להיות או סטרינג עם השמות של הערכים מופרדים ב-Space או ליסט של סטרינגים, זה לא באמת משנה. בואו ניצור איזשהו My Data ונשמור שם את ה-First Name, ה-Last Name ואת ה-H.

  8. 02:11

    שימו לב, יש לי פה שלושה ערכים בסטרינג אחד שמופרדים על ידי Space. לאחר מכן, אם אני רוצה ליצור Name טאפל, מה שאני עושה זה כזה דבר. אז כדי ליצור Name טאפל עושים כזה דבר.

  9. 02:22

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

  10. 02:41

    ואנחנו בעצם אומרים שאנחנו רוצים עכשיו ליצור סוג חדש, לא ג'ון פרסון, כבר יותר טוב.

  11. 02:49

    ואנחנו רוצים עכשיו ליצור ניו פרסון, ובואו נגדיר מה יש בו. אז ג'ון שווה פרסון. פה בעצם אנחנו נותנים את הערכים של ה-First Name, Last Name ו-Age.

  12. 03:04

    אז ג'ון סמית והערך והגיש שלו הוא 40 נגיד. ואז פרינט ג'ון, בואו נריץ ונראה מה אנחנו רואים פה. שימו לב, באנו פה My Data שבמקום First Name יש Json, Last Name סמית ו-Age הוא 40. כמו שהבטחתי לכם, אז הערכים פה הם נגישים כמו דיקשנרי, בעצם עם נקודה.

  13. 03:36

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

  14. 04:25

    להוציא last name, או את ה-age, לא משנה. בעצם, מה היתרונות של המבנה הזה? דבר ראשון, לשים לב שבהדפסות אז my data מופיע פה במזהה שלו.

  15. 04:42

    אז כלומר, הפרמטר הראשון לפונקציה name טאפל מלווה אותנו לכל אורך הטייפ הזה. מבחינת יתרונות וחסרונות, אז חסרונות הם, אני לא יודע אם זה חסרונות, דבר ראשון, אי אפשר לשנות אותו.

  16. 04:55

    אז אם ננסה לעשות john.age=4, נקבל שגיאה. כי זה טאפל, כלומר זה name טאפל, הוא אימיוטבל, הוא לא ניתן לשינוי. זה אומר שהוא חוסך לנו מבחינת מקום, הוא לוקח פחות מקום בזיכרון, הוא מאוד טוב להחזרת ערכים מפונקציות, אם רוצים להחזיר פונקציה שיש לה שדות לא אינדקסים

  17. 05:21

    אלא שמות משמעותיים, למשל אחד המודולים שמשתמש בname טאפל זה sqlite3 בפייתון שהוא מחזיר ערכים, שהוא מחזיר שורות מטבלאות בsql, כדי לזהות את העמודות אז אין לנו שם זה לא מספר במספרים של אינדקסים רוצים אלא בשם של עמודה בטבלת sql אז הדרך לגשת היא

לקורס המלא: קורס פייתון אונליין למתחילים

ההרצאה הקודמת: הסבר על set

ההרצאה הבאה: list comprehension

קורסים נוספים במסלול

  • קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים
  • קורס PHP - פרויקט מעשי