ادغام مجموعه ها (Join Sets)
می خواهیم «ادغام مجموعه ها» را یاد بگیریم. ادغام یعنی چند ست را ترکیب کنیم. هر روش نتیجه متفاوتی می دهد. بعضی روش ها عضو مشترک را نگه می دارند. بعضی روش ها همه اعضا را برمی گردانند.
اتحاد (union) و عملگر |
متد union() یک ست جدید می سازد. همه اعضای هر دو ست برمی گردند.
set1 = {"a", "b", "c"}
set2 = {1, 2, 3}
set3 = set1.union(set2)
print(set3)
همین کار با عملگر | هم ممکن است. نتیجه یکی است.
set1 = {"a", "b", "c"}
set2 = {1, 2, 3}
set3 = set1 | set2
print(set3)
ادغام چندین ست
می توانی چند ست را با union() همزمان ادغام کنی.
set1 = {"a", "b", "c"}
set2 = {1, 2, 3}
set3 = {"John", "Elena"}
set4 = {"apple", "bananas", "cherry"}
myset = set1.union(set2, set3, set4)
print(myset)
با عملگر | نیز زنجیره ای ادغام کن.
set1 = {"a", "b", "c"}
set2 = {1, 2, 3}
set3 = {"John", "Elena"}
set4 = {"apple", "bananas", "cherry"}
myset = set1 | set2 | set3 | set4
print(myset)
ست با تاپل یا لیست
متد union() می تواند با تاپل یا لیست هم کار کند. خروجی همچنان ست است.
x = {"a", "b", "c"}
y = (1, 2, 3)
z = x.union(y)
print(z)
نکته: عملگر | فقط بین ست ها مجاز است. برای دیگر ساختارها از union() استفاده کن.
به روزرسانی درجا (update)
متد update() اعضای ست دوم را به ست اول اضافه می کند. ست جدید نمی سازد.
set1 = {"a", "b", "c"}
set2 = {1, 2, 3}
set1.update(set2)
print(set1)
نکته: union() و update() مقدار تکراری را حذف می کنند.
اشتراک (intersection) و عملگر &
متد intersection() فقط اعضای مشترک را برمی گرداند.
set1 = {"apple", "banana", "cherry"}
set2 = {"google", "microsoft", "apple"}
set3 = set1.intersection(set2)
print(set3)
همین نتیجه با عملگر & نیز ممکن است.
set1 = {"apple", "banana", "cherry"}
set2 = {"google", "microsoft", "apple"}
set3 = set1 & set2
print(set3)
نکته: & فقط بین ست ها مجاز است؛ برای دیگر ساختارها از intersection() استفاده کن.
متد intersection_update() همین کار را درجا انجام می دهد.
set1 = {"apple", "banana", "cherry"}
set2 = {"google", "microsoft", "apple"}
set1.intersection_update(set2)
print(set1)
توجه: True با 1 و False با 0 برابر محسوب می شوند.
set1 = {"apple", 1, "banana", 0, "cherry"}
set2 = {False, "google", 1, "apple", 2, True}
set3 = set1.intersection(set2)
print(set3)
تفاضل (difference) و عملگر -
متد difference() فقط اعضای ست اول که در دومی نیستند را برمی گرداند.
set1 = {"apple", "banana", "cherry"}
set2 = {"google", "microsoft", "apple"}
set3 = set1.difference(set2)
print(set3)
با عملگر - هم همین نتیجه را می گیری.
set1 = {"apple", "banana", "cherry"}
set2 = {"google", "microsoft", "apple"}
set3 = set1 - set2
print(set3)
متد difference_update() همین کار را درجا انجام می دهد.
set1 = {"apple", "banana", "cherry"}
set2 = {"google", "microsoft", "apple"}
set1.difference_update(set2)
print(set1)
تفاضل متقارن (symmetric_difference) و عملگر ^
متد symmetric_difference() همه اعضای غیرمشترک را نگه می دارد.
set1 = {"apple", "banana", "cherry"}
set2 = {"google", "microsoft", "apple"}
set3 = set1.symmetric_difference(set2)
print(set3)
عملگر ^ هم همین نتیجه را می دهد.
set1 = {"apple", "banana", "cherry"}
set2 = {"google", "microsoft", "apple"}
set3 = set1 ^ set2
print(set3)
متد symmetric_difference_update() نسخه درجا همین عملیات است.
set1 = {"apple", "banana", "cherry"}
set2 = {"google", "microsoft", "apple"}
set1.symmetric_difference_update(set2)
print(set1)
گام های عملی ادغام مجموعه ها
- دو ست ساده بساز.
- با
union()یک ست جدید بگیر. - با
update()همان را درجا بساز. - اشتراک را با
intersection()بررسی کن. - تفاضل و متقارن را مقایسه کن.
ادامه مسیر و منابع
مبحث حلقه مجموعه ها را ببین. همچنین حذف از مجموعه مهم است. اگر به ست ثابت نیاز داری، به frozenset برو. برای جستجو با کلیدواژه «ادغام مجموعه ها» همین صفحه مرجع است.
جمع بندی سریع
unionهمه اعضا را برمی گرداند.updateدرجا ادغام می کند.intersectionفقط مشترک ها را نگه می دارد.differenceاعضای غیرمشترک ست اول است.symmetric_differenceفقط غیرمشترک های دو ست است.