SET در پایتون – کاربرد و نحوه استفاده با مثال و کد

۵۲ بازدید
آخرین به‌روزرسانی: ۲۳ مهر ۱۴۰۳
زمان مطالعه: ۲۲ دقیقه
SET در پایتون – کاربرد و نحوه استفاده با مثال و کد

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

فهرست مطالب این نوشته
997696

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

SET در پایتون چیست؟

SET در پایتون، مجموعه‌ای نامرتب از عناصر یکتا است. ویژگی‌های SET را می‌توان در سه مورد زیر، خلاصه کرد.

  1. در SET، عناصر تکراری نمی‌توانند وجود داشته باشند. اگر عنصری چندین بار به SET اضافه شود، در نهایت فقط یک مورد از آن در SET ذخیره خواهد شد.
  2. عناصر درون SET یا مجموعه، نامرتب هستند. ترتیب عناصر درون مجموعه با هربار استفاده از آن تغییر می‌کند.
  3. بعد از آن‌که مجموعه ساخته شد مقادیر درون آن دیگر قابل تغییر نیستند. عناصر درون مجموعه را نمی‌توان تغییر داد حتی اگر متغیرهای حاوی مقدار باشند. اما خود این عناصر را می‌توان حذف یا اضافه کرد. خود مجموعه قابل تغییر است.

فرض کنیم که ساختار داده‌ای از نوع لیست در اختیار داریم. برای حل مسئله نیاز داریم که عناصر لیست را به صورت غیر تکراری مورد بررسی قرار دهیم. به این منظور باید از مجموعه در پایتون استفاده کنیم. به همین صورت اگر بخواهیم که داده‌های دریافت شده از ورودی را به صورت یکتا نگهداری کنیم، هم بهتر است از SET در پایتون استفاده کنیم. برای تعریف کردن SET باید عناصر را درون آکولاد قرار دهیم. مجموعه‌های پایتون مانند سایر ساختارهای داده می‌توانند داده‌هایی را از انواع مختلف ذخیره کنند.

SET در پایتون چگونه تعریف می‌شود؟

برای تعریف SET یا مجموعه در پایتون کافی است که عناصر مورد نظر را درون آکولاد‌های باز و بسته «{}» قرار دهیم و با کمک ویرگول از همدیگر جدا کنیم. همچنین می‌توانیم از متد تعریف شده set() در پایتون برای انجام این کار استفاده کنیم. این متد برای تولید مجموعه از طریق توالی ارسال شده به آن به عنوان آرگومان به‌کار برده می‌شود.

استفاده از آکولاد برای تعریف SET

در مثال پایین، ساخت مجموعه را با کمک آکولاد {} نمایش داده‌ایم.

1Days = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"} 
2print(Days)
3print(type(Days))
4print("looping through the set elements ... ")
5for i in Days:
6    print(i)

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

{'Friday', 'Tuesday', 'Monday', 'Saturday', 'Thursday', 'Sunday', 'Wednesday'}
<class 'set'>
looping through the set elements ...
Friday
Tuesday
Monday
Saturday
Thursday
Sunday
Wednesday

استفاده از متد set برای تعریف مجموعه

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

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

در مثال زیر، روش استفاده از متد set() را برای تعریف مجموعه نمایش داده‌ایم.

1Days = set(["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"])    
2print(Days)    
3print(type(Days))    
4print("looping through the set elements ... ")    
5for i in Days:    
6    print(i)    

در اثر اجرای کد بالا، خروجی زیر به کاربر نمایش داده می‌شود.

{'Friday', 'Wednesday', 'Thursday', 'Saturday', 'Monday', 'Tuesday', 'Sunday'}
<class 'set'>
looping through the set elements ...
Friday
Wednesday
Thursday
Saturday
Monday
Tuesday
Sunday

از آنجا که مجموعه‌ها می‌توانند هر نوع عنصری - به غیر موارد خاص که در ادامه گفته می‌شود - را مانند اعداد صحیح، اعداد Float، تاپل‌ها و غیره را در خود نگهدارند، متد set() هم می‌تواند هر نوعی را به عنوان ورودی دریافت کند. اما نکته اینجاست که مجموعه‌ها قادر به نگهداری انواع داده «قابل تغییر» (Mutable) مانند لیست‌ها‌ و دیکشنری‌ها نیستند.

مثال نمایش داده شده در پایین، تخصیص داده‌های قابل تغییر به مجموعه را نشان می‌دهد.

1# Creating a set which have immutable elements  
2set1 = {1,2,3, "JavaTpoint", 20.5, 14}  
3print(type(set1))  
4#Creating a set which have mutable element  
5set2 = {1,2,3,["Javatpoint",4]}  
6print(type(set2))  

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

<class 'set'>

Traceback (most recent call last)
<ipython-input-5-9605bb6fbc68> in <module>
4
5 #Creating a set which holds mutable elements
----> 6 set2 = {1,2,3,["Javatpoint",4]}
7 print(type(set2))

TypeError: unhashable type: 'list'

در کدهای بالا، اقدام به ساخت دو مجموعه جدا کرده‌ایم. مجموعه set1 شامل عناصر غیرقابل تغییر است و مجموعه set2 شامل یک عنصر قابل تغییر - لیست پایتون - است. اما در زمان بررسی نوع set2 باعث ایجاد (برگشت) خطا می‌شویم. این مسئله به معنای این است که مجموعه‌ها فقط می‌توانند شامل عناصر غیرقابل تغییر باشند.

  • نکته: ساخت مجموعه تهی کمی تفاوت دارد. زیرا آکولاد‌ها برای تعریف دیکشنری در پایتون نیز به‌کار برده می‌شوند. بنابراین پایتون متد set() را ارائه داده است. با کمک این متد می‌توان مجموعه تهی ایجاد کرد. فقط کافی است، در زمان استفاده از متد set() هیچ آرگومانی به آن ارسال نکنیم.

نمونه ساده این عملیات را در کدهای پایین پیاده‌سازی کرده‌ایم.

1# Empty curly braces will create dictionary  
2set3 = {}  
3print(type(set3))  
4  
5# Empty set using set() function  
6set4 = set()  
7print(type(set4))

خروجی حاصل از اجرای کد بالا به صورت زیر به کاربر نمایش داده می‌شود.

<class 'dict'>
<class 'set'>

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

1set5 = {1,2,4,4,5,8,9,9,10}
2print("Return set with unique elements:",set5)

بعد از اجرای کد بالا، مجموعه ساخته شده در نهایت به شکل زیر به کاربر نمایش داده می‌شود. البته مجموعه نمایش داده شده همان شکل واقعی مجموعه ساخته شده نهایی است.

Return set with unique elements: {1, 2, 4, 5, 8, 9, 10}

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

فیلم های آموزش سطوح پیشرفته پایتون در فرادرس

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

مجموعه آموزش برنامه نویسی پایتون Python – مقدماتی تا پیشرفته
«با کلیک بر روی تصویر بالا می‌توانید به صفحه اصلی مجموعه آموزش فیلم‌های برنامه نویسی Python هدایت شوید.»

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

اضافه کردن عنصر به SET در پایتون

پایتون متدهای Add و Update را برای اضافه کردن عناصر مشخص شده به مجموعه‌ها ارائه داده است. متد add() برای افزودن عنصرها به صورت مجزا به کاربرده می‌شود در حالی که از متد update() برای افزودن چندین عنصر به صورت همزمان به مجموعه استفاده می‌شود. در مثال‌های این بخش استفاده از هر دو متد را نمایش داده‌ایم.

مثال اول: استفاده از متد Add

در مثال پایین، مجموعه‌ای از چند ماه سال را به نام Months تشکیل داده‌ایم. با کمک متد add() می‌خواهیم عناصر بیشتری را به این مجموعه اضافه کنیم.

1Months = set(["January","February", "March", "April", "May", "June"])
2print("\nprinting the original set ... ") 
3print(months)    
4print("\nAdding other months to the set...");
5Months.add("July");    
6Months.add ("August");    
7print("\nPrinting the modified set...");    
8print(Months)    
9print("\nlooping through the set elements ... ")    
10for i in Months:    
11    print(i)    

بعد از اجرای کدهای بالا، خروجی زیر به عنوان نتیجه به کاربر نمایش داده می‌شود.

printing the original set ...
{'February', 'May', 'April', 'March', 'June', 'January'}

Adding other months to the set...

Printing the modified set...
{'February', 'July', 'May', 'April', 'March', 'August', 'June', 'January'}

looping through the set elements ...
February
July
May
April
March
August
June
January

مثال دوم: استفاده از متد Update

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

1Months = set(["January","February", "March", "April", "May", "June"])
2print("\nprinting the original set ... ")    
3print(Months)
4print("\nupdating the original set ... ")    
5Months.update(["July","August","September","October"])
6print("\nprinting the modified set ... ")     
7print(Months);  

بعد از اجرای کدهای بالا، خروجی زیر به عنوان نتیجه به کاربر نمایش داده می‌شود.

printing the original set ...
{'January', 'February', 'April', 'May', 'June', 'March'}

updating the original set ...
printing the modified set ...
{'January', 'February', 'April', 'August', 'October', 'May', 'June', 'July', 'September', 'March'}

حذف عناصر از SET در پایتون

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

مثال اول: استفاده از متد Discard

در این مثال‌ هم از مجموعه ماه‌های سال months استفاده می‌کنیم. با کمک متد discard() اقدام به حذف عناصر موجود در SET کرده‌ایم.

1months = set(["January","February", "March", "April", "May", "June"])    
2print("\nprinting the original set ... ")    
3print(months)    
4print("\nRemoving some months from the set...");    
5months.discard("January");    
6months.discard("May");    
7print("\nPrinting the modified set...");    
8print(months)    
9print("\nlooping through the set elements ... ")    
10for i in months:    
11    print(i)    

بعد از اجرای کدهای بالا، خروجی زیر به عنوان نتیجه به کاربر نمایش داده می‌شود.

printing the original set ...
{'February', 'January', 'March', 'April', 'June', 'May'}

Removing some months from the set...

Printing the modified set...
{'February', 'March', 'April', 'June'}

looping through the set elements ...
February
March
April
June

مثال دوم: استفاده از متد Remove

پایتون متد remove() را هم برای حذف عناصر معرفی کرده است. از این متد بر روی عناصر مجموعه نیز می‌توان استفاده کرد. در مثال زیر، با استفاده از متد remove() عناصری را از مجموعه months حذف کرده‌ایم.

1months = set(["January","February", "March", "April", "May", "June"])    
2print("\nprinting the original set ... ")    
3print(months)    
4print("\nRemoving some months from the set...");    
5months.remove("January");    
6months.remove("May");    
7print("\nPrinting the modified set...");    
8print(months)    

بعد از اجرای کدهای بالا، خروجی زیر به عنوان نتیجه به کاربر نمایش داده می‌شود.

printing the original set ...
{'February', 'June', 'April', 'May', 'January', 'March'}

Removing some months from the set...

Printing the modified set...
{'February', 'June', 'April', 'March'}

مثال سوم: استفاده از متد Pop

برای حذف عناصر درون SET می‌توان از متد Pop نیز استفاده کرد. این متد را معمولا به عنوان عضوی از متدهای لیست در پایتون می‌شناسند. ولی تقریبا بر روی همه اشیاء پیمایش‌پذیر پایتون قابل استفاده است. به طور کلی، متد pop()  همیشه آخرین عنصر را حذف می‌کند. اما مجموعه‌ها ساختارهای نامرتبی هستند، بنابراین نمی‌توانیم عنصر حذف شده از مجموعه را از قبل تشخیص داده یا پیش‌بینی کنیم.

توضیح المان‌های مجزا در مجموعه‌های پایتون با گرافیک‌های داینامیک

در کدهای زیر از متد pop() برای حذف دو عنصر مختلف مجموعه Months  استفاده کرده‌ایم.

1Months = set(["January","February", "March", "April", "May", "June"])    
2print("\nprinting the original set ... ")    
3print(Months)    
4print("\nRemoving some months from the set...");    
5Months.pop();    
6Months.pop();    
7print("\nPrinting the modified set...");    
8print(Months)    

بعد از اجرای کدهای بالا، خروجی زیر به عنوان نتیجه به کاربر نمایش داده می‌شود.

printing the original set ...
{'June', 'January', 'May', 'April', 'February', 'March'}

Removing some months from the set...

Printing the modified set...
{'May', 'April', 'February', 'March'}

در کدهای بالا، آخرین عنصر مجموعه Months  ، ماه March است. اما متد pop() ماه‌های June  و January  را از SET حذف کرده است. این مسئله بخاطر این است که مجموعه‌ها نامرتب هستند. بنابراین متد pop() نمی‌تواند آخرین عنصر مجموعه را تشخیص دهد. می‌توان گفت که متد pop() به صورت تصادفی گزینه‌هایی را از درون مجموعه‌ها انتخاب کرده و حذف می‌کند. هر بار که کدهای بالا را اجرا کنید با ماه‌های باقیمانده متفاوتی درون مجموعه Months  روبه‌رو می‌شوید.

مثال چهارم: متد Clear

پایتون، متد دیگری را نیز با هدف حذف همه عناصر از درون مجموعه ارائه داده است. با کمک متد clear()  می‌توان همه عناصر را به صورت یکجا از درون مجموعه حذف کرد. در مثال زیر، روش استفاده از این متد را برای پاکسازی مجموعه Months  نمایش داده‌ایم.

1Months = set(["January","February", "March", "April", "May", "June"])    
2print("\nprinting the original set ... ")    
3print(Months)    
4print("\nRemoving all the items from the set...");    
5Months.clear()    
6print("\nPrinting the modified set...")    
7print(Months)    

بعد از اجرای کدهای بالا، خروجی زیر به عنوان نتیجه به کاربر نمایش داده می‌شود.

printing the original set ...
{'January', 'May', 'June', 'April', 'March', 'February'}

Removing all the items from the set...

Printing the modified set...
set()

تفاوت بین متدهای Discard و Remove

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

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

استوانه‌های رنگی در پس زمینه تاریک - SET در پایتون

در مثال زیر، استفاده از هر دو متد discard() و remove() را برای حذف عنصر ناموجود از مجموعه نمایش داده‌ایم.

1Months = set(["January","February", "March", "April", "May", "June"])
2print("\nprinting the original set ... ")
3print(Months)
4print("\nRemoving items through discard() method...");
5Months.discard("Feb"); #will not give an error although the key feb is not available in the set
6print("\nprinting the modified set...")
7print(Months)
8print("\nRemoving items through remove() method...");
9Months.remove("Jan") #will give an error as the key jan is not available in the set.
10print("\nPrinting the modified set...")
11print(Months)

بعد از اجرای کدهای بالا، خروجی زیر به عنوان نتیجه به کاربر نمایش داده می‌شود.

printing the original set ...
{'March', 'January', 'April', 'June', 'February', 'May'}

Removing items through discard() method...

printing the modified set...
{'March', 'January', 'April', 'June', 'February', 'May'}

Removing items through remove() method...
Traceback (most recent call last):
File "set.py", line 9, in
Months.remove("Jan")
KeyError: 'Jan'

عملیات رایج بر روی ساختار SET در پایتون

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

  • «اجتماع» (Union)
  • «اشتراک» (Intersection)
  • «اختلاف» یا «تفاضل» (Difference)
  • «تفاضل متقارن» (Symmetric Difference)

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

اجتماع دو مجموعه

برای اینکه در پایتون، تعداد دو با بیشتری مجموعه‌ را با یکدیگر ترکیب کرده و مجموعه جدیدی ایجاد کنیم، از تابع Union استفاده می‌کنیم. تمام ویژگی‌های متمایز و منحصر به فرد هر کدام از مجموعه‌های مورد عملیات، در مجموعه نهایی حضور خواهد داشت. به عنوان پارامتر می‌توان از یک یا تعداد بیشتری مجموعه برای ارسال به تابع Union استفاده کرد.

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

اتحاد دو مجموعه

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

مثال اول: استفاده از عملگر اجتماع

عملگر اجتماع بین مجموعه‌ها با نماد «|» شناخته می‌شود. این عملگر دو عملوند در سمت چپ و راست خود می‌پذیرد. در مثال زیر، استفاده از عملگر | را برای اجرای عملیات اجتماع بین دو مجموعه نمایش داده‌ایم.

1Days1 = {"Monday","Tuesday","Wednesday","Thursday", "Sunday"}
2Days2 = {"Friday","Saturday","Sunday"}
3print(Days1|Days2) #printing the union of the sets

بر اثر اجرای کد بالا، خروجی زیر در کنسول پایتون به کاربر نمایش داده می‌شود.

{'Friday', 'Sunday', 'Saturday', 'Tuesday', 'Wednesday', 'Monday', 'Thursday'}

مثال دوم: استفاده از متد Union

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

ابزار اختصاصی پایتون برای محاسبه نتیجه اجتماع دو مجموعه، متد اختصاصی union()  است. در کادر زیر، با کمک مثال ساده‌ای استفاده از متد union()  را برای محاسبه اجتماع بین دو مجموعه نمایش داده‌ایم.

1Days1 = {"Monday","Tuesday","Wednesday","Thursday"}
2Days2 = {"Friday","Saturday","Sunday"}
3print(Days1.union(Days2)) #printing the union of the sets 

بر اثر اجرای کد بالا، خروجی زیر در کنسول پایتون به کاربر نمایش داده می‌شود.

{'Friday', 'Monday', 'Tuesday', 'Thursday', 'Wednesday', 'Sunday', 'Saturday'}

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

1# Create three sets
2set1 = {1, 2, 3}  
3set2 = {2, 3, 4}  
4set3 = {3, 4, 5}  
5  
6# Find the common elements between the three sets  
7common_elements = set1.union(set2, set3)  
8
9# Print the common elements
10print(common_elements)

بر اثر اجرای کد بالا، خروجی زیر در کنسول پایتون به کاربر نمایش داده می‌شود.

{1, 2, 3, 4, 5}

اشتراک دو مجموعه

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

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

اشتراک دو مجموعه

در پایتون برای محاسبه اشتراک بین مجموعه‌ها می‌توان از عملگر مقایسه and و نماد &  یا تابع intersection() استفاده کرد. عملگرهای and و &  با هم برابر و هم‌معنی هستند. اشتراک دو مجموعه به مجموعه‌ای از عناصر گفته می‌شود که در هر دو مجموعه وجود دارند.

در مثال‌های پایین، روش‌های مختلف محاسبه اشتراک مجموعه‌ها را پیاده‌سازی کرده‌ایم.

مثال اول: استفاده از عملگر And

در این مثال از عملگر &  برای محاسبه اشتراک بین دو مجموعه استفاده می‌کنیم. توجه دارید که استفاده از عملگر &  و and دقیقا شبیه به هم است.

1Days1 = {"Monday","Tuesday", "Wednesday", "Thursday"}
2Days2 = {"Monday","Tuesday","Sunday", "Friday"}   
3print(Days1&Days2) #prints the intersection of the two sets

بر اثر اجرای کد بالا، خروجی به صورت {'Monday', 'Tuesday'} در کنسول پایتون به کاربر نمایش داده می‌شود.

مثال دوم: استفاده از متد Intersection

برای این بخش از دو مثال مختلف استفاده کرده‌ایم. در این مثال‌ها با داده‌های متنوعی کار می‌کنیم.

نوع داده استرینگ

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

1set1 = {"Devansh","John", "David", "Martin"}
2set2 = {"Steve", "Milan", "David", "Martin"}
3print(set1.intersection(set2)) #prints the intersection of the two sets

بر اثر اجرای کد بالا، خروجی به صورت {'Martin', 'David'} در کنسول پایتون به کاربر نمایش داده می‌شود.

نوع داده عددی

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

1set1 = {1,2,3,4,5,6,7}
2set2 = {1,2,20,32,5,9}
3set3 = set1.intersection(set2)
4print(set3)

بر اثر اجرای کد بالا، خروجی به صورت {1,2,5}   در کنسول پایتون به کاربر نمایش داده می‌شود.

دو نفر ایستاده‌اند. تصویر پر از المان‌های مفهومی مربوط به کامپیوتر و اینترنت است. - SET در پایتون

مثال سوم: محاسبه اشتراک بیش از دو مجموعه

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

در کدهای پایین روش انجام این کار را نمایش داده‌ایم.

1# Create three sets  
2set1 = {1, 2, 3}  
3set2 = {2, 3, 4}  
4set3 = {3, 4, 5}  
5  
6# Find the common elements between the three sets  
7common_elements = set1.intersection(set2, set3)  
8  
9# Print the common elements  
10print(common_elements)  

بر اثر اجرای کد بالا، خروجی به صورت {3} در کنسول پایتون به کاربر نمایش داده می‌شود.

متد Intersection_Update

متد intersection_update() تمام عناصری را که در همه مجموعه‌ها مشترک نیستند از مجموعه اول حذف می‌کند. این متد با متد intersection() متفاوت است. زیرا در این متد، مجموعه اصلی را از طریق حذف عناصر نامشترک با سایر مجموعه‌ها تغییر می‌دهیم. از سوی دیگر متد intersection() مجموعه جدیدی را برمی‌گرداند.

1a = {"Devansh", "bob", "castle"}
2b = {"castle", "dude", "emyway"}
3c = {"fuson", "gaurav", "castle"}
4
5a.intersection_update(b, c)
6
7print(a)

بر اثر اجرای کد بالا، خروجی به صورت {'castle'} در کنسول پایتون به کاربر نمایش داده می‌شود. مجموعه اصلی در این نوع از توابع، همان مجموعه‌ای است که از سمت چپ به تابع متصل می‌شود. تغییرات بر روی آن اعمال می‌شود. سایر متدها به صورت دست‌نخورده باقی می‌مانند.

اختلاف یا تفاضل بین دو مجموعه

برای محاسبه تفاضل بین دو مجموعه هم می‌توان از عملگر منها «-» استفاده کرد و هم از متد Difference. فرض کنیم که دو مجموعه A و B وجود دارند. هدف بدست آوردن تفاضل مجموعه A از B است. این مسئله به صورت «A - B» هم نمایش داده می‌شود. این تفاضل به معنای آن است که مجموعه جواب، شامل تمام عناصری از مجموعه A است که در مجموعه ‌B وجود ندارند.

اختلاف یا تفاضل بین دو مجموعه

در ادامه این بخش با کمک دو مثال ساده روش محاسبه تفاضل مجموعه‌ها را کدنویسی کرده‌ایم.

مثال اول: استفاده از عملگر منها

عملگر منها به صورت خط تیره «- » نمایش داده می‌شود و یکی از ساده‌ترین روش‌ها برای محاسبه تفاضل مجموعه سمت راست آن از مجموعه سمت چپ آن است. در کادر زیر، روش استفاده از این عملگر را نمایش داده‌ایم.

1Days1 = {"Monday",  "Tuesday", "Wednesday", "Thursday"}
2Days2 = {"Monday", "Tuesday", "Sunday"}
3print(Days1-Days2) #{"Wednesday", "Thursday" will be printed}

بر اثر اجرای کد بالا، خروجی به صورت {'Thursday', 'Wednesday'} در کنسول پایتون به کاربر نمایش داده می‌شود.

مثال دوم: استفاده از متد Difference

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

1Days1 = {"Monday",  "Tuesday", "Wednesday", "Thursday"}
2Days2 = {"Monday", "Tuesday", "Sunday"}
3print(Days1.difference(Days2)) # prints the difference of the two sets Days1 and Days2

بر اثر اجرای کد بالا، خروجی به صورت {'Thursday', 'Wednesday'} در کنسول پایتون به کاربر نمایش داده می‌شود.

تفاضل متقارن دو مجموعه

«تفاضل متقارن» (Symmetric Difference) بین دو مجموعه به عملیات کشف عناصری می‌گویند که فقط در یکی از مجموعه‌ها وجود داشته باشند. یعنی اینکه بین هر دو مجموعه مشترک نباشند و فقط در یکی از دو مجموعه وجود داشته باشند. به بیان دیگر تفاضل متقارن دو مجموعه شامل عناصری است که در set1 یا set2 وجو داشته باشند اما عضوی از مجموعه اشتراک set1 و set2 نباشند.

تفاضل متقارن دو مجموعه

برای محاسبه تفاضل متقارن دو مجموعه در پایتون از متد symmetric_difference() و عملگر «^» استفاده می‌شود. متد symmetric_difference() مجموعه جدیدی را در خروجی برمی‌گرداند که شامل همه عناصری است که فقط در یکی از مجموعه‌های صورت مسئله وجود داشته باشند. عناصری که در هر دو مجموعه اولیه وجود دارند، عضوی از مجموعه جواب نخواهند بود.

در ادامه روش استفاده از متد symmetric_difference() و عملگر «^» را با کمک مثال‌های ساده‌ای نمایش داده‌ایم.

مثال اول: استفاده از عملگر نماد عملیات تفاضل متقارن

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

1a = {1,2,3,4,5,6}
2b = {1,2,9,8,10}  
3c = a^b  
4print(c)  

بر اثر اجرای کد بالا، خروجی زیر بر روی صفحه مانیتور کاربر چاپ می‌شود.

{3, 4, 5, 6, 8, 9, 10}

مثال دوم: استفاده از متد Symmetric_Difference

در این مثال‌هم از مجموعه‌های نمایش داده شده در مثال قبل استفاده کرده‌ایم. کاملا قابل مشاهده است که روش استفاده و نتیجه استفاده از هر دو تکنیک یکسان است.

1a = {1,2,3,4,5,6}  
2b = {1,2,9,8,10}  
3c = a.symmetric_difference(b)  
4print(c)  

بر اثر اجرای کد بالا، خروجی زیر بر روی صفحه مانیتور کاربر چاپ می‌شود.

{3, 4, 5, 6, 8, 9, 10}

مقایسه مجموعه ها

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

  • برابری: در این مقایسه، برابری بین دو مجموعه با یکدیگر مورد بررسی قرار می‌گیرد.
  • زیرمجموعه بودن: در این مقایسه بررسی می‌کنیم که آیا یکی از مجموعه‌ها زیرمجموعه‌ای از مجموعه دیگر است یا نه. یا برعکس آیا یکی از مجموع‌ها فوق‌مجموعه، مجموعه دیگر هست یا نه.
  • اعضای مشترک: در این مقایسه، وجود اعضای مشترک در بین دو مجموعه را بررسی می‌کنیم.

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

  • عملگر == : عملگر == بدون در نظر گرفتن ترتیب مجموعه‌ها، برابری را بین آن‌ها بررسی می‌کند.
  • عملگر != : بررسی می‌کند که آیا دو مجموعه نابرابر هستند یا نه. در صورت نابرابری مقدار True و در غیر این صورت مقدار False برمی‌گرداند.
  • عملگر <: بررسی می‌کند که آیا عملوند سمت چپ این عملگر زیر مجموعه مناسبی برای عملوند سمت راست آن است یا نه. یعنی اینکه آیا همه عناصر موجود در مجموعه سمت چپ عملگر در مجموعه سمت راست آن وجود دارند یا نه. مجموعه سمت راست، عناصر اضافی هم دارد.
  • عملگر<= : زیر مجموعه بودن عملوند سمت چپ را برای عملوند سمت راست بررسی می‌کند. به معنی اینکه آیا همه عناصر عملوند سمت چپ در عملوند سمت راست موجود هستند یا نه. همچنین عملوند سمت راست نیازی به داشتن عنصر اضافه ندارد.
  • عملگر >: بررسی می‌کند که آیا عملوند سمت چپ این عملگر فوق‌مجموعه مناسبی برای عملوند سمت راست آن است یا نه. یعنی اینکه آیا همه عناصر موجود در مجموعه سمت راست در مجموعه سمت چپ وجود دارند یا نه. مجموعه سمت چپ، عناصر اضافی هم دارد.
  • عملگر >= : فوق‌مجموعه بودن عملوند سمت چپ را برای عملوند سمت راست بررسی می‌کند. یعنی اینکه همه عناصر عملوند سمت راست در عملوند سمت چپ موجود هستند و عملوند سمت چپ نیازی به داشتن عنصر اضافه ندارد.
اشکال هندسی با غلبه استوانه در پس زمینه سبز رنگ - SET در پایتون

در کادر پایین مثال‌هایی از استفاده عملگرهای مقایسه‌ای بر روی مجموعه‌ها را کدنویسی کرده‌ایم.

1Days1 = {"Monday",  "Tuesday", "Wednesday", "Thursday"}
2Days2 = {"Monday", "Tuesday"}
3Days3 = {"Monday", "Tuesday", "Friday"}
4
5#Days1 is the superset of Days2 hence it will print true.
6print (Days1>Days2)
7
8#prints false since Days1 is not the subset of Days2
9print (Days1<Days2)
10
11#prints false since Days2 and Days3 are not equivalent
12print (Days2 == Days3)

بر اثر اجرای کدهای بالا، خروجی زیر تولید شده و در کنسول پایتون نمایش داده می‌شوند.

True
False
False

مجموعه منجمد SET در پایتون

«مجموعه منجمد» (Frozen Set) در پایتون به مجموعه‌ای گفته می‌شود که بعد از ایجاد شدن دیگر قابل تغییر نیست. این مجموعه دقیقا مانند مجموعه‌های معمولی از داده‌های نامرتب و یکتا تشکیل شده است و با روش یکسانی هم قابل استفاده است. تفاوت مهم مجموعه‌ منجمد و مجموعه معمولی در این است که نمی‌توان مجموعه منجمد را تغییر داد.

از آن‌جا که مجموعه‌های منجمد غیرقابل تغییر هستند، می‌توان آن‌ها را به عنوان عناصر سایر مجموعه‌ها یا کلید‌های دیکشنری نیز به‌کار برد. در حالی که نمی‌توان از مجموعه‌های استاندارد چنین کاربردهایی را انتظار داشت.

یکی از مهمترین مزایای استفاده ازمجموعه‌های منجمد این است که این مجموعه‌ها قابل هش شدن هستند. محتویات این مجموعه‌ها نمی‌توانند تغییر کنند، بنابراین مقادیر هش ساخته شده از روی این‌ها به صورت ثابت باقی می‌مانند. اما مجموعه‌های استاندارد قابل هش کردن نیستند. به دلیل قابل تغییر بودن محتوی آن‌ها، مقادیر هش ساخته شده از روی آن‌ها هم می‌تواند تغییر کند.

اشیاء مجموعه منجمد از بسیاری از عملیات‌ها مانند مجموعه‌های عادی پشتیبانی می‌کنند. به عنوان مثال مجموعه‌های منجمد هم از عملیات اجتماع، اشتراک، تفاضل و تفاضل متقارن بین مجموعه‌ها پشتیبانی می‌کنند. همچنین با توابعی که مجموعه منجمد را تغییر ندهند نیز کار می‌کنند. از این قبیل توابع می‌توان به Len و Min و Max و عملگر In - که برای بررسی عضویت استفاده می‌شود - اشاره کرد.

در کادر زیر، روش ساخت مجموعه منجمد را با کمک مثال ساده‌ای نمایش داده‌ایم.

1Frozenset = frozenset([1,2,3,4,5])
2print(type(Frozenset))
3print("\nprinting the content of frozen set...")
4for i in Frozenset:
5    print(i);
6Frozenset.add(6) #gives an error since we cannot change the content of Frozenset after creation

بر اثر اجرای کدهای بالا، خروجی زیر تولید شده و در کنسول پایتون نمایش داده می‌شوند.

<class 'frozenset'>

printing the content of frozen set...
1
2
3
4
5
Traceback (most recent call last):
File "set.py", line 6, in 
Frozenset.add(6) #gives an error since we can change the content of Frozenset after creation
AttributeError: 'frozenset' object has no attribute 'add'

در کدهای بالا تمام عملیات برنامه‌نویسی شده انجام شد به جز خط آخر کد Frozenset.add(6) بود. زیرا این خط کد باعث تغییر در مجموعه منجمد می‌شد. به همین دلیل مفسر پایتون خطای AttributeError را برگردانده‌ است.

استفاده از مجموعه منجمد در دیکشنری

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

1Dictionary = {"Name":"John", "Country":"USA", "ID":101}
2print(type(Dictionary))
3Frozenset = frozenset(Dictionary); #Frozenset will contain the keys of the dictionary
4print(type(Frozenset))
5for i in Frozenset:
6    print(i)

بر اثر اجرای کدهای بالا، خروجی زیر تولید شده و در کنسول پایتون نمایش داده می‌شوند.

<class 'dict'>
<class 'frozenset'>
Name
Country
ID

استفاده از SET در پایتون

نوع SET در پایتون شباهت تقریبی به دیکشنری دارد. این دو نوع از جمله ساختارهای بسیار مهم برای ذخیره و مدیریت داده‌ها در پایتون هستند. برای آشنایی با این ساختارها می‌توانید فیلم رایگان آموزش داده ساختارهای Dictionary و Set در پایتون را از فرادرس مشاهده کنید. لینک مربوط به این فیلم را در پایین نیز قرار داده‌ایم.

در ادامه این بخش از مطلب به بررسی و نمایش چند مثال درباره ساختار SET در پایتون و راه حل آن‌ها پرداخته‌ایم.

ستون‌های رنگی ۰ و ۱ - SET در پایتون

مثال اول: حذف عناصر از SET در پایتون

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

1my_set = {1,2,3,4,5,6,12,24}  
2n = int(input("Enter the number you want to remove"))  
3my_set.discard(n)  
4print("After Removing:",my_set)  

بر اثر اجرای کدهای بالا، خروجی زیر تولید شده و در کنسول پایتون نمایش داده می‌شود.

Enter the number you want to remove:12
After Removing: {1, 2, 3, 4, 5, 6, 24}

مثال دوم: افزودن عنصر به مجموعه

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

1set1 = set([1,2,4,"John","CS"])  
2set1.update(["Apple","Mango","Grapes"])  
3print(set1) 

بر اثر اجرای کدهای بالا، خروجی زیر تولید شده و در کنسول پایتون نمایش داده می‌شود.

{1, 2, 4, 'Apple', 'John', 'CS', 'Mango', 'Grapes'}

مثال سوم: محاسبه اشتراک

باید برنامه‌ای نوشته شود که اشتراک بین دو مجموعه داده شده محاسبه شود.

1set1 = set(["Peter","Joseph", 65,59,96])  
2set2  = set(["Peter",1,2,"Joseph"])  
3set3 = set1.union(set2)  
4print(set3)  

بر اثر اجرای کدهای بالا، خروجی زیر تولید شده و در کنسول پایتون نمایش داده می‌شود.

{96, 65, 2, 'Joseph', 1, 'Peter', 59}

مثال چهارم: محاسبه تفاضل

در این مسئله دو مجموعه مجزا از هم داده شده است. باید برنامه‌ای برای محاسبه تفاضل بین این دو مجموعه نوشته شود.

1set1 = {23,44,56,67,90,45,"Javatpoint"}  
2set2 = {13,23,56,76,"Sachin"}  
3set3 = set1.intersection(set2)  
4print(set3)  

خروجی حاصل از اجرای این برنامه به صورت مجموعه {56, 23} در کنسول پایتون به کاربر نمایش داده می‌‌شود.

مثال پنجم: افزودن عنصر به مجموعه منجمد

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

1set1 = [3,44,56,67,90,45,"Javatpoint"]
2set2 = frozenset(set1)
3set3 = set2.add(2)
4print(set3) 

خروجی حاصل از اجرای این برنامه به صورت زیر در کنسول پایتون به کاربر نمایش داده می‌‌شود.

Traceback (most recent call last):
  File "main.py", line 3, in 
    set3 = set2.add(2)
AttributeError: 'frozenset' object has no attribute 'add'

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

مثال ششم: عمگرهای مقایسه ای

در این مسئله ۳ مجموعه جدا از هم داده شده‌اند. هدف این است که برنامه‌ای برای بررسی زیرمجموعه‌ یا فوق‌مجموعه بودن این موارد بنویسیم.

1set1 = set(["Peter","James","Camroon","Ricky","Donald"])  
2set2 = set(["Camroon","Washington","Peter"])  
3set3 = set(["Peter"])  
4  
5issubset = set1 >= set2  
6print(issubset)  
7issuperset = set1 <= set2  
8print(issuperset)  
9issubset = set3 <= set2  
10print(issubset)  
11issuperset = set2 >= set3  
12print(issuperset)  

خروجی حاصل از اجرای این برنامه به صورت زیر در کنسول پایتون به کاربر نمایش داده می‌‌شود.

False
False
True
True

فیلم های پروژه محور پایتون در فرادرس

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

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

مجموعه آموزش پروژه محور برنامه نویسی پایتون (Python)
«با کلیک بر روی تصویر بالا می‌توانید به صفحه اصلی مجموعه آموزشی فیلم‌های پروژه محور برنامه نویسی پایتون هدایت شوید.»

متدهای SET در پایتون

در این بخش از مطلب مهمترین متدهایی که پایتون برای کار بر روی مجموعه‌ها فراهم کرده را معرفی کرده‌ایم.

  1. add(item) : این متد برای اضافه کردن عنصر به مجموعه به‌کار برده می‌شود. در صورتی که عنصر مورد نظر از قبل در مجموعه وجود داشته باشد، هیچ تغییر در مجموعه روی نمی‌دهد.
  2. clear() : این متد همه عناصر را از مجموعه حذف می‌کند.
  3. copy() :‌ این متد نسخه «کپی سطحی» یا «کپی کم عمق» (Shallow Copy) از مجموعه داده شده تهیه کرده و برمی‌گرداند.
  4. difference_update() : این متد، مجموعه اصلی را تغییر می‌دهد. این تغییر به واسطه حذف کردن تمام عناصری روی می‌دهند که در مجموعه مشخص شده‌ای دیگری وجود دارند. مجموعه اصلی در پشت متد نوشته شده و مجموعه مشخص شده به عنوان پارامتر به متد ارسال می‌شود.
  5. discard(item) : این متد، item  مشخص شده را از مجموعه حذف می‌کند.
  6. intersection(): متد Intersection مجموعه‌ جدیدی برمی‌گرداند که فقط شامل عناصر مشترک بین دو مجموعه دیگر است. البته این متد می‌تواند چندین مجموعه را به عنوان پارامتر بپذیرد. ولی برای ساخت مجموعه جواب فقط از عناصری استفاده می‌کند که بین تمام مجموعه‌های پذیرفته شده مشترک باشند یا به عبارتی در همه آن‌ها وجود داشته باشند.
  7. intersection_update() متد Intersection_Update آیتم‌هایی را که در هر دو مجموعه مشخص شده وجود نداشته باشند، پیدا کرده و از مجموعه اصلی حذف می‌کند. این متد هم می‌تواند چندین مجموعه را به عنوان پارامتر بپذیرد. در نتیجه برای ساخت مجموعه جواب، عناصری را از مجموعه اصلی حذف می‌کند که بین تمام مجموعه‌های پذیرفته شده مشترک نباشند یا به عبارتی در همه آن‌ها وجود نداشته باشند.
  8. Isdisjoint() : در صورتی که اشتراک بین دو مجموعه برابر با تهی باشد، در جواب مقدار True برمی‌گرداند.
  9. Issubset() : متد Issubset بررسی می‌کند که آیا مجموعه دیگر شامل این مجموعه است یا نه.
  10. Issuperset() : متد Issuperset بررسی می‌کند که آیا این مجموعه شامل مجموعه دیگر است یا نه.
  11. pop() : این متد عنصری را به صورت دلخواه از درون مجموعه انتخاب کرده و حذف می‌کند. سپس مقدار حذف شده را به بیرون برمی‌گرداند. در صورت خالی بودن مجموعه استفاده از متد Pop باعث ایجاد خطای «KeyError» می‌شود.
  12. remove(item) : عنصری را از مجموعه حذف می‌کند. این عنصر باید جزوی از مجموعه باشد، در غیر این صورت باعث خطای «KeyError» می‌شود.
  13. symmetric_difference(): متد Symmetric_Difference مجموعه جدیدی را در خروجی برمی‌گرداند که شامل همه عناصری است که در هر کدام از مجموعه‌های صورت مسئله وجود دارند. اما عناصر مشترک بین هر دو مجموعه اولیه، عضوی از مجموعه جواب نخواهند شد.
  14. symmetric_difference_update() : مجموعه‌ای را با محاسبه داده‌های تفاضل متقارن بین آن مجموعه و مجموعه دیگر به‌روزرسانی می‌کند.
  15. union() : اجتماع بین مجموعه‌ها را به عنوان مجموعه جدیدی به خروجی برمی‌گرداند. یعنی اینکه با تمام عناصر موجود در همه مجموعه‌ها، مجموعه جدیدی تشکیل داده و به بیرون برمی‌گرداند.
  16. update() : عناصر مجموعه‌ای را با داده‌های حاصل از محاسبه اجتماع آن مجموعه و سایر مجموعه‌ها به‌روزرسانی می‌کند.
تصاویری از مکعب در فضای هندسی به صورت بی رنگ و رنگی - SET در پایتون

جمع‌بندی

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

سپس انواع روش‌ها و عملگرهای مربوط به عمل مقایسه بین مجموعه‌ها را شناختیم و با مجموعه‌های منجمد هم آشنا شدیم. در نهایت هم چند مسئله ساده درباره SET در پایتون را بیان کرده و جواب هر مسئله را به صورت کدنویسی شده نمایش دادیم.

بر اساس رای ۰ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
JavatpointfreeCodeCamp
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *