
set עם רשימה כארגומנט.a.union(b) או a | b מחזיר את כל האיברים של שתי הקבוצות.a.difference(b) או a - b מחזיר את האיברים שנמצאים ב-a ואינם נמצאים ב-b.a.intersection(b) או a & b מחזיר את האיברים שנמצאים בשתי הקבוצות.intersection. כדי לחשב חיתוך בין רשימה לרשימה צריך להמיר אחת מהן ל-set.הטקסט המלא של הדקות הראשונות בהרצאה «הסבר על set» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, בשיעור הזה נדבר על עוד מבנה נתונים בפייתון שכדאי להכיר, המבנה סט. ההגדרה של סט זה בעצם אוסף לא ממוין של אובייקטים יוניקים.
מה הכוונה? הכוונה היא שזה אוסף של כל מיני אובייקטים שהם מופיעים רק פעם אחת, כלומר אובייקט לא יכול להופיע יותר מפעם אחת ואין מיון.
בואו נתחיל בדוגמה קטנה איך נוצרים סט. קוראים לו פונקציה סט ומביאים למשל ליסט של מה שאנחנו רוצים שיהיה בו למשל ריינג' ריינג' של 10 ועוד ריינג' של 10 בוא נעשה כבר כזה דבר נדפיס את s ונראה מה יש בו עכשיו בוא נדפיס את הדבר הזה שהוא לא בתוך סט ונראה מה יש בתוכו שימו לב שבעצם סט מעצם ההגדרה שמה שאמרתי לכם שהוא מכיל הוא יוניקי והוא מכיל
כל אובייקט פעם אחת בלבד בעצם מכיל את המספר 0 פעם אחת. לעומת זאת, בהדפסה השנייה, שזה לא בתוך סט, אנחנו רואים את 0 פה ואת 0 פה. שימו לב שזה שהמספרים פה הם ממויינים, זה יצא ככה במקרה, וסט לא מביא לנו התחייבות למיון של ערכים.
מבחינת דברים שסט נותן לנו, אז מי שמכיר תורת הקבוצות, יכיר יותר טוב את המונחים שאני עומד להגיד, ומי שלא, אז אני אסביר אותם בקצרה. דבר ראשון, סט הוא מיוטבל, כלומר הוא יכול להשתנות אם יש לי b שהוא שווה ל-s ואני עושה b נקודה עד ואני אדפיס s שימו לב שגם b וגם s השתנו, כלומר הוא מיוטבל בדיוק כמו list ו-dictionary מבחינת הפונקציות אז יש לו את הפונקציה len שמחזירה את האורך, כלומר מספר
האלמנטים שבתוכו ושאר הפעולות הן פעולות של תורת הקבוצות איחוד זה בעצם חיבור בוא ניתן ניתן דוגמה לכל אחד מהם זה יהיה הכי קל להבין אז הפעולה נקראת באנגלית Union בוא נגיד שיש לנו סט חדש נשתמש כל הזמן ב-A ו-B סט של ריינג' 10 5 יש לנו את B שהוא שווה לסט ריינג' של 4 עד 7 נשים את כל זה בהערה ונראה מה יש לנו אוקיי
אז יש לנו שני סטים של המספרים 1 עד 4 ו-4 עד אז דבר ראשון Union זה חיבור של שני הסטים, עכשיו יש שתי אופציות לעשות את זה, אפשר לעשות a.unionb אפשר לעשות a.end תשימו לב end בודד של b, שניהם יתנו לי את אותה תוצאה, סליחה התכוונתי לכתוב לא end אלא or, הקדמתי את המאוחר, הסיבה דרך אגב
שהקדישו לזה את הסימנים זה כי מי שכתב את פייתון הוא מתמטיקאי תורת הקבוצות היא ענף חשוב במתמטיקה והיה לו חשוב שיהיה לו מבנה נתונים שיוכל לשחק איתו בתורת הקבוצות.
אז בעצם Union זה בעצם אם נגדיר את זה לא פורמלית אבל All the Elements A and B Bind. עכשיו הפונקציה השנייה שאני אסביר עליה זה חיתוך וזה נקרא Difference.
בואו נעתיק עוד פעם את A ו-B ונצפיס את A.difference שימו לב שגם פה יש לנו אופציה להשתמש במינוס. כלומר, זה לא רק פונקציה, אבל מבחינת הערך מדובר פה באותו דבר בדיוק.
מה קיבלנו? קיבלנו, רגע, בוא נעשה את ההתפוצה הזאת, בעצם קיבלנו את הערכים שב-a,