סטים

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

יצירת סט

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

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

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

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

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

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

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

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

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

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

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

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