آموزش پایتون - اتصال مجموعه‌ها

در پایتون، یک مجموعه (set) یک مجموعه غیرترتیبی از آیتم‌های منحصربه‌فرد و درهم‌سازی‌پذیر (hashable) است. عناصر می‌توانند از انواع مختلفی باشند، به شرطی که درهم‌سازی‌پذیر باشند. اعداد، رشته‌ها و تاپل‌های حاوی عناصر درهم‌سازی‌پذیر می‌توانند در یک مجموعه قرار گیرند، در حالی که از لیست‌ها و دیکشنری‌ها به دلیل درهم‌سازی‌ناپذیر بودن نمی‌توان به عنوان عناصر مجموعه استفاده کرد. پایتون متدها و عملگرهای مختلفی را برای ادغام مجموعه‌ها ارائه می‌دهد.

اتصال مجموعه‌ها در پایتون

اتصال مجموعه‌ها در پایتون به معنای ترکیب دو یا چند مجموعه در قالب یک مجموعه واحد است. هنگام اتصال مجموعه‌ها، عناصر چندین مجموعه با یکدیگر ترکیب می‌شوند و در عین حال اطمینان حاصل می‌شود که عناصر تکراری حذف شوند، چرا که مجموعه‌ها اجازه وجود عناصر تکراری را نمی‌دهند.

این کار را می‌توان با استفاده از روش‌های مختلفی انجام داد، مانند عملگر و متد اجتماع (union)، متد update، عملگر بازکردن (unpacking)، درک مجموعه (set comprehension) و اضافه کردن پیمایشی (iterative addition).

اتصال مجموعه‌های پایتون با استفاده از عملگر "|"

علامت "|" (خط عمودی یا pipe) به عنوان عملگر اجتماع شناخته می‌شود. این عملگر عملیات A ∪ B را انجام می‌دهد و مجموعه‌ای از آیتم‌های موجود در A، B یا هر دو را برمی‌گرداند. مجموعه عناصر تکراری را مجاز نمی‌داند.

مثال

در مثال زیر، با استفاده از عملگر "|"، عملیات اجتماع را روی مجموعه‌های "s1" و "s2" انجام می‌دهیم و یک مجموعه جدید به نام "s3" ایجاد می‌کنیم که شامل عناصر هر دو مجموعه بدون تکرار است −

s1={1,2,3,4,5}
s2={4,5,6,7,8}
s3 = s1|s2
print (s3)

خروجی زیر تولید خواهد شد −

{1, 2, 3, 4, 5, 6, 7, 8}

اتصال مجموعه‌های پایتون با استفاده از متد union()

کلاس set دارای متد union() است که همان عملیات عملگر | را انجام می‌دهد. این متد یک شیء مجموعه برمی‌گرداند که شامل تمام آیتم‌های موجود در هر دو مجموعه است و تکراری‌ها را دور می‌ریزد.

مثال

در این مثال، متد union() را روی مجموعه "s1" فراخوانی کرده و مجموعه "s2" را به عنوان آرگومان به آن پاس می‌دهیم؛ این کار یک مجموعه جدید "s3" برمی‌گرداند که شامل عناصر هر دو مجموعه بدون تکرار است −

s1={1,2,3,4,5}
s2={4,5,6,7,8}
s3 = s1.union(s2)
print (s3)

خروجی به دست آمده به صورت زیر است −

{1, 2, 3, 4, 5, 6, 7, 8}

اتصال مجموعه‌های پایتون با استفاده از متد update()

متد update() نیز مانند متد union() دو مجموعه را به هم متصل می‌کند. با این حال، یک شیء مجموعه جدید برنمی‌گرداند. در عوض، عناصر مجموعه دوم به مجموعه اول اضافه می‌شوند و عناصر تکراری مجاز نیستند.

مثال

در مثال زیر، با استفاده از متد update() مجموعه "s1" را با عناصر مجموعه "s2" به‌روزرسانی می‌کنیم و "s1" را تغییر می‌دهیم تا شامل عناصر هر دو مجموعه بدون تکرار باشد −

s1={1,2,3,4,5}
s2={4,5,6,7,8}
s1.update(s2)
print (s1)

نتیجه به دست آمده به صورت زیر است −

{1, 2, 3, 4, 5, 6, 7, 8}

اتصال مجموعه‌های پایتون با استفاده از عملگر بازکردن (Unpacking)

در پایتون، علامت "*" به عنوان عملگر بازکردن (unpacking) استفاده می‌شود. عملگر بازکردن به صورت داخلی هر عنصر در یک مجموعه داده را به یک متغیر جداگانه اختصاص می‌دهد.

ما می‌توانیم با استفاده از عملگر بازکردن (*)، مجموعه‌های پایتون را با بازکردن عناصر چندین مجموعه به درون یک مجموعه جدید به یکدیگر متصل کنیم.

مثال

در مثال زیر، با بازکردن عناصر مجموعه‌های "s1" و "s2" با استفاده از عملگر * در داخل یک عبارت مجموعه، مجموعه جدید "s3" را ایجاد می‌کنیم −

s1={1,2,3,4,5}
s2={4,5,6,7,8}
s3 = {*s1, *s2}
print (s3)

خروجی تولید شده به صورت زیر است −

{1, 2, 3, 4, 5, 6, 7, 8}

اتصال مجموعه‌های پایتون با استفاده از درک مجموعه (Set Comprehension)

درک مجموعه در پایتون روشی فشرده برای ساخت مجموعه‌ها با استفاده از یک شیء قابل‌پیمایش (iterable) است، شبیه به درک لیست (list comprehension) اما با این تفاوت که خروجی به جای لیست، یک مجموعه خواهد بود. این ویژگی به شما امکان می‌دهد با اعمال یک عبارت روی هر آیتم در یک شیء قابل‌پیمایش و در صورت تمایل فیلتر کردن آیتم‌ها بر اساس یک شرط، مجموعه بسازید.

ما می‌توانیم با پیمایش روی چندین مجموعه و اضافه کردن عناصر آن‌ها به یک مجموعه جدید با استفاده از درک مجموعه، مجموعه‌های پایتون را به هم متصل کنیم.

مثال

در این مثال، با استفاده از درک مجموعه، یک مجموعه جدید به نام "joined_set" ایجاد می‌کنیم. با پیمایش روی لیستی حاوی "set1" و "set2" و سپس پیمایش روی هر عنصر "x" در هر مجموعه "s"، تمام عناصر هر دو مجموعه را در "joined_set" ادغام می‌کنیم −

set1 = {1, 2, 3}
set2 = {3, 4, 5}

joined_set = {x for s in [set1, set2] for x in s}
print(joined_set) 

خروجی کد بالا به صورت زیر است −

{1, 2, 3, 4, 5}

اتصال مجموعه‌های پایتون با استفاده از اضافه کردن پیمایشی

اضافه کردن پیمایشی در مبحث مجموعه‌ها به اضافه کردن تکراری عناصر از یک مجموعه به مجموعه دیگر با استفاده از یک حلقه یا ساختار پیمایشی اشاره دارد. این کار به شما امکان می‌دهد عناصر چندین مجموعه را در یک مجموعه واحد ادغام کنید و مطمئن شوید که عناصر تکراری شامل نمی‌شوند.

ما می‌توانیم مجموعه‌های پایتون را با استفاده از اضافه کردن پیمایشی، از طریق پیمایش روی عناصر هر مجموعه و اضافه کردن آن‌ها به یک مجموعه جدید، به هم متصل کنیم.

مثال

در مثال زیر، ابتدا یک مجموعه خالی را مقداردهی اولیه می‌کنیم. سپس، روی هر عنصر در "set1" و "set2" به صورت جداگانه پیمایش کرده و هر عنصر را با استفاده از متد add() به مجموعه جدیدی به نام "joined_set" اضافه می‌کنیم −

set1 = {1, 2, 3}
set2 = {3, 4, 5}

# Initializing an empty set to hold the merged elements
joined_set = set()

# Iterating over set1 and adding its elements to the joined set
for element in set1:
   joined_set.add(element)

# Iterating over set2 and adding its elements to the joined set
for element in set2:
   joined_set.add(element)

print(joined_set)  

پس از اجرای کد بالا، خروجی زیر را دریافت می‌کنیم −

{1, 2, 3, 4, 5}

پیشرفت مطالعه: وضعیت خوانده‌شدن این درس فقط در همین مرورگر ذخیره می‌شود؛ بدون نیاز به حساب کاربری.