متدهای مجموعه (Set Methods)
اینجا با «متدهای مجموعه (Set Methods)» آشنا می شوی. «مجموعه (Set)» ساختاری یکتا و بی نظم است. بیشتر متدها یا عضو اضافه می کنند، یا حذف می کنند، یا مجموعه جدید می سازند. مثال ها کوتاه و مدرسه ای هستند.
افزودن و پاک سازی: add(), clear(), copy()
add یک عضو تازه می افزاید. clear همه اعضا را خالی می کند. copy یک کپی کم هزینه می سازد.
s = {"apple", "banana"}
s.add("cherry")
print(s)
s2 = s.copy()
print(s2)
s.clear()
print(s)
نکته: مجموعه ها بی نظم اند؛ ترتیب چاپ قابل پیش بینی نیست.
تفاضل: difference(), difference_update(), عملگر - و -=
difference مجموعه جدید می دهد. difference_update خود مجموعه را کم می کند.
a = {"apple", "banana", "cherry"}
b = {"banana", "microsoft"}
only_a = a.difference(b)
print(only_a)
a.difference_update(b)
print(a)
حذف امن یا خطادار: discard() و remove()
remove اگر عضو نباشد خطا می دهد. discard بی صدا رد می شود.
s = {"apple", "banana"}
s.remove("banana")
print(s)
s.discard("not-exist")
print(s)
اشتراک: intersection(), intersection_update(), عملگر & و &=
intersection فقط مشترک ها را نگه می دارد. نسخه update مجموعه اول را ویرایش می کند.
x = {"apple", "banana", "cherry"}
y = {"apple", "google"}
inter = x.intersection(y)
print(inter)
x.intersection_update(y)
print(x)
بی اشتراکی و زیر/ابر مجموعه: isdisjoint(), issubset(), issuperset()
isdisjoint یعنی هیچ اشتراکی نیست. issubset زیرمجموعه بودن را می سنجد. issuperset برعکس آن است.
small = {1, 2}
big = {1, 2, 3}
print(small.isdisjoint({4, 5}))
print(small.issubset(big))
print(big.issuperset(small))
حذف تصادفی و مشخص: pop() و remove()
pop یک عضو تصادفی برمی دارد و برمی گرداند. remove عضو مشخصی را می زداید.
s = {"a", "b", "c"}
val = s.pop()
print(val)
print(s)
s.remove("a")
print(s)
تقارن: symmetric_difference(), symmetric_difference_update(), عملگر ^ و ^=
symmetric_difference فقط غیرمشترک های دو مجموعه را نگه می دارد. نسخه update مجموعه اول را تغییر می دهد.
a = {"apple", "banana"}
b = {"banana", "cherry"}
res = a.symmetric_difference(b)
print(res)
a.symmetric_difference_update(b)
print(a)
اتحاد: union(), update(), عملگر | و |=
union مجموعه جدید می دهد. update اعضای دیگران را به همین مجموعه می افزاید.
p = {1, 2}
q = {2, 3}
r = p.union(q)
print(r)
p.update(q)
print(p)
ادامه مطالعه
برای تمرین ادغام به ادغام مجموعه ها برو. همچنین موضوع فروزن ست را بررسی کن. اگر نیاز داری اعضا را حذف کنی، صفحه حذف از مجموعه کمک می کند. افزودن اعضا را هم در افزودن به مجموعه ببین.
جمع بندی سریع
- متدهای با update مجموعه اصلی را تغییر می دهند.
- متدهای بدون update معمولاً مجموعه جدید می سازند.
- remove خطا می دهد؛ discard بی صدا است.
- union ادغام است؛ intersection مشترک ها است.
- symmetric_difference فقط غیرمشترک ها را نگه می دارد.