סט Python

במדריך זה נלמד את Set ב-Python. במאמר הקודם שלנו למדנו על String ב-Python. ניתן ללמוד את זה מ-כאן.

Set ב-Python

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

# סט המכיל סוג נתונים יחיד
set1 = {1, 2, 3, 4, 2, 3, 1}
print(set1)

# סט המכיל מספר סוגי נתונים
set2 = {1, 2, 3, (1, 2, 3), 2.45, "Python", 2, 3}
print(set2)

# יצירת סט מרשימה
theList = [1, 2, 3, 4, 2, 3, 1]
theSet = set(theList)
print(theSet)

הפלט יהיה

================== RESTART: /home/imtiaz/set1.py ==================
set([1, 2, 3, 4])
set([1, 2, 3, 2.45, 'Python', (1, 2, 3)])
set([1, 2, 3, 4])
>>> 

הוספת איברים ל-Set ב-Python

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

#אתחול סט ריק
theSet = set()

#הוספת איבר יחיד באמצעות הפונקציה add()
theSet.add(1)
theSet.add(2)
theSet.add(3)
theSet.add(2)
#הוספת סוג נתונים נוסף
theSet.add('hello')

#הוספת איברים איטרטיביים באמצעות הפונקציה update()
theSet.update([1,2,4,'hello','world']) #list as iterable element
theSet.update({1,2,5}) #set as iterable element
print(theSet)

הפלט של הקוד הבא יהיה

================== RESTART: /home/imtiaz/set_new.py ==================
set([1, 2, 3, 4, 5, 'world', 'hello'])
>>> 

הסרת איברים מסט בפייתון

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

theSet = {1,2,3,4,5,6}

#הסרת 3 באמצעות הפונקציה discard()
theSet.discard(3)
print(theSet)

#קריאה שוב לפונקציה discard() כדי להסיר 3
theSet.discard(3) #This won't raise any exception
print(theSet)

#קריאה לפונקציה remove() כדי להסיר 5
theSet.remove(5)
print(theSet)

#קריאה לפונקציה remove() כדי להסיר 5 again
theSet.remove(5) #this would raise exception
print(theSet) #this won't be printed

תמצא שהפלט יהיה כך,

================== RESTART: /home/imtiaz/set_del.py ==================
set([1, 2, 4, 5, 6])
set([1, 2, 4, 5, 6])
set([1, 2, 4, 6])

Traceback (most recent call last):
  File "/home/imtiaz/set_del.py", line 16, in 
    theSet.remove(5) #this would raise exception
KeyError: 5
>>> 

פעולות על סטים בפייתון

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

איחוד סטים בפייתון

איחוד הוא הפעולה למזג שני סטים. זה אומר, איחוד ייצור סט אחר שמכיל את כל האיברים הייחודיים של שני הסטים. לדוגמה, {1, 2, 3, 4} ו־ {2, 3, 5, 7} הם שני סטים. אם נבצע את פעולת האיחוד מעליהם, אנו מקבלים {1, 2, 3, 4, 5, 7}. אנו יכולים להשיג את זה על ידי שימוש בפונקציית union().

חיתוך סטים בפייתון

שוב, חיתוך הוא הפעולה לקבלת האיברים הייחודיים המשותפים של שני סטים. לדוגמה, {1, 2, 3, 4} ו־ {2, 3, 5, 7} הם שני סטים. אם נחתוך אותם, אנו מקבלים {2, 3}. הפעולת חיתוך מבוצעת על ידי הפונקציה intersection().

הבדל סטים בפייתון

כעת, פעולת ההבדל משווה בין שני סטים ויוצרת סט חדש המכיל פריטים מהסט A שאינם משותפים בסט B. לדוגמה, נניח שיש לנו שני סטים, A = {1, 2, 3, 4} ו-B = {2, 3, 5, 7}. אז, הפעולה A – B תייצר {1, 4}. בנוסף, B – A תייצר {5, 7}. פעולת ההבדל נעשית על ידי פונקציית difference()… הקוד הבא יעניק לך רעיון כיצד לבצע את הפעולות הללו על סטים בתכנות בפייתון.

A = {1, 2, 3, 4} #initializing set A
B = {2, 3, 5, 7} #initializing set B

union_operation = A.union(B)

print("A union B :")
print(union_operation)

intersection_operation = A.intersection(B)

print("A intersection B :")
print(intersection_operation)

difference_operation = A.difference(B)

print("A-B :")
print(difference_operation)

difference_operation = B.difference(A)
print("B-A :")
print(difference_operation)

הפלט שתקבל יהיה דומה לזה

================== RESTART: /home/imtiaz/set_op.py ==================
A union B :
set([1, 2, 3, 4, 5, 7])
A intersection B :
set([2, 3])
A-B :
set([1, 4])
B-A :
set([5, 7])
>>> 

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

Source:
https://www.digitalocean.com/community/tutorials/python-set