top of page

מבני נתונים בפייתון - סטים



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


יצירת סט

ההבדל הראשון שניתן להבחין בו בין סט לבין רשימה למשל, הוא שיטת הסימון. בהגדרת סטים אנחנו משתמשים בסוגריים "מסולסלים"- { } - או באנגלית "Curly brackets".

אבל בשונה ממה שראינו עד כה, כדי ליצור סט ריק נשתמש בפונקציה set בצורה הבאה:


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

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



הוספה ומחיקה של ערכים

כדי להוסיף ערכים לסט קיים נשתמש במתודה add. התכונה הנוספת המיוחדת לסטים היא שסט מכיל את הערכים באופן ייחודי – כל ערך יכול להופיע פעם את בלבד. במידה וננסה להוסיף ערך אשר כבר קיים לא תהיה לפקודה כל השפעה.


מחיקה של ערכים יכולה להתבצע באמצעות המתודה remove. ניסיון להסיר ערך שלא קיים יחזיר שגיאה:


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


פעולות נוספות

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


הפקודה clear "מנקה" סט מכל הערכים שנמצאים בו


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




0 תגובות

פוסטים אחרונים

הצג הכול
bottom of page