آموزش مجموعه ها (Set) در پایتون (Python)

set ها مانند لیست ها و tuple ها برای ذخیره چندین مقدار درون یک متغیر استفاده می شوند.

set ها یکی دیگر از 4 نوع داده داخلی هستند که برای ذخیره مجموعه داده ها استفاده می شوند، دو نوع لیست ها و tuple ها را در دو مقاله قبل برای شما به طور مفصل شرح دادیم و فقط فرهنگ لغت یا همان dictionary باقی مانده که بعد از set ها آن را نیز به طور مفصل برای شما شرح می دهیم.

مجموعه ها نه ایندکس دارند و نه مرتب می شوند، به این معنی که مجموعه ها به صورت تصادفی در خروجی ظاهر می شوند، یعنی با هر بار refresh شدن ترتیب آن عوض می شود.

بهزاد میرزازاده بهزاد میرزازاده

زمان مطالعه

3 دقیقه

بازدید

602

پرسش و پاسخ

0
آموزش مجموعه ها (Set) در پایتون (Python)

آیتم های set یا مجموعه داخل جفت کورشه ({}) نوشته می شوند.

thisset = {"apple", "banana", "cherry"}
print(thisset)

مجموعه ها (Sets) در پایتون (Python)

نکته: set ها مرتب نیستند، پس نمی توان انتظار داشت که به همان صورت که تعریف می شوند در خروجی نیز به همان ترتیب ظاهر شوند.

آیتم های set

آیتم های set ها ترتیبی نیستند، تغییر ناپذیرند و مقادیر تکراری را مجاز نمی دانند.

مرتب نشده

مرتب نشده به این معنی است که آیتم ها ترتیب مشخصی ندارند.

آیتم ها در مجموعه ها هر بار ترتیبشان تغییر می کند و نمی توانیم با ایندکس یا کلید به آن ها دسترسی پیدا کنیم.

تغییرناپذیر

Set ها غیر قابل تبدیل هستند، به این معنی که نمی توانیم آیتم های آن را بعد از تعریف تغییر دهیم.

نکته: نمی توانیم بعد از تعریف set ها آیتم های آن را تغییر داد اما می توانیم به آیتم های آن آیتم جدیدی اضافه کنیم.

مجاز نبودن مقادیر تکراری

مجموعه ها نمی توانند آیتم های تکراری را بپذیرند .

در مثال زیر مقدار “apple” تکرار شده است و از چاپ آن صرف نظر شده است.

thisset = {"apple", "banana", "cherry", "apple"}
print(thisset)

مجاز نبودن مقادیر تکراری مجموعه ها در پایتون (Python)

به دست آوردن طول یک set

برای یه دست آوردن تعداد آیتم های یک مجموعه از متد len استفاده می کنیم.

در مثال زیر تعداد آیتم های set را برمیگرداند.

thisset = {"apple", "banana", "cherry"}
print(len(thisset))

به دست آوردن طول یک مجموعه در پایتون (Python)

نوع داده های مجاز در آیتم های set

می توانیم از تمام نوع های داده ای موجود در آیتم های set استفاده کرد.

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

set1 = {"apple", "banana", "cherry"}
set2 = {1, 5, 7, 9, 3}
set3 = {True, False, False}

نوع داده های مجاز در آیتم های set در پایتون (Python)

همچنین می توانیم در یک متغیر با نوع داده ای set از ترکیب چند نوع داده ای استفاده کنیم.

set1 = {"abc", 34, True, 40, "male"}

نوع داده های مجاز در آیتم های set در پایتون (Python)

تابع type

از دیدگاه پایتون set ها اشیا با نوع داده ای set تعریف می شوند.

<class 'set'>

در مثال زیر این مساله به طور واضح به شما نشان داده شده است.

myset = {"apple", "banana", "cherry"}
print(type(myset))

تابع type مجموعه ها (sets) در پایتون (Python)

متد سازنده set

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

thisset = set(("apple", "banana", "cherry")) # note the double round-brackets
print(thisset)

متد سازنده مجموعه در پایتون (Python)

دسترسی به آیتم های set در پایتون (Python)

نمی توان با مراجعه به ایندکس و یا کلید به آیتم ها در set دسترسی پیدا کرد.

اما می توانید با استفاده از حلقه for آیتم های آن را پیمایش کنید و یا با استفاده از کلمه کلیدی in بررسی کنید که آیا مقدار مشخصی در بین آیتم ها وجود دارد یا ن.

در مثال زیر یک set با حلقه for پیمایش شده و مقادیر آن در خروجی چاپ شده اند.

thisset = {"apple", "banana", "cherry"}
for x in thisset:
  print(x)

دسترسی به آیتم های مجموعه در پایتون (Python)

در این مثال هم بررسی می کند که آیا مقدار مشخص شده “banana” درون آیتم های set وجود دارد یا نه، که در صورت وجود مقدار true و در صورت نبودن مقدار false را برمیگرداند.

thisset = {"apple", "banana", "cherry"}
print("banana" in thisset)

دسترسی به آیتم های set در پایتون (Python)

تغییر آیتم ها در مجموعه

شما بعد از ایجاد آیتم ها نمی توانید آن ها را تغییر دهید اما می توانید موارد جدیدی به آن اضافه کنید.

اضافه کردن به آیتم های set در پایتون (Python)

همانطور که در بالا گفته شد، شما بعد از ایجاد آیتم ها نمی توانید آن ها را تغییر دهید اما می توانید موارد جدیدی به آن اضافه کنید.

برای اضافه کردن آیتم جدیدی به set از متد add استفاده می کنیم.

در مثال زیر با استفاده از متد add یک آیتم به set اضافه شده است.

thisset = {"apple", "banana", "cherry"}
thisset.add("orange")
print(thisset)

اضافه کردن به آیتم های مجموعه در پایتون (Python)

اضافه کردن یک set به set دیگر

برای اضافه کردن آیتم هایی از یک set به set دیگر از متد update استفاده می کنیم.

در مثال زیر آیتم های مجموعه tropical به آیتم های مجموعه thisset اضافه می شوند.

thisset = {"apple", "banana", "cherry"}
tropical = {"pineapple", "mango", "papaya"}
thisset.update(tropical)
print(thisset)

اضافه کردن یک مجموعه به set دیگر در پایتون (Python)

اضافه کردن هر شی قابل پیمایش

قرار نیست که در متد update فقط از set ها استفاده کنیم، ما می توانیم هر متغیر قابل پیمایشی را اعم از لیست ها، تاپل پایتون ها و یا فرهنگ لغت ها را اضافه کنیم .

در مثال زیر آیتم های یک لیست به آیتم های یک set اضافه شده است.

thisset = {"apple", "banana", "cherry"}
mylist = ["kiwi", "orange"]
thisset.update(mylist)
print(thisset)

اضافه کردن هر شی قابل پیمایش به مجموعه ها در پایتون (Python)

حذف آیتم های یک set در پایتون (Python)

برای حذف آیتم ها در set از یکی از متدهای remove و یا discard استفاده می کنیم.

در مثال زیر با استفاده از متد remove یک آیتم از set حذف شده است.

thisset = {"apple", "banana", "cherry"}
thisset.remove("banana")
print(thisset)

حذف آیتم های یک مجموعه در پایتون (Python)

نکته: اگر آیتم مورد نظر برای حذف شدن وجود نداشته باشد متد remove یک پیغام خطا صادر می کند.

در مثال زیر با استفاده از متد discard یک آیتم از set حذف شده است.

thisset = {"apple", "banana", "cherry"}
thisset.discard("banana")
print(thisset)

حذف آیتم های یک set در پایتون (Python)

نکته: اگر آیتم مورد نظر برای حذف شدن وجود نداشته باشد متد discard پیغام خطایی صادر نمی کند.

برای حذف آیتم ها می توانید از متد pop هم استفاده کنید، این متد آیتم را از آخر آیتم ها حذف می کند و از آنجا که آیتم ها در set ایندکس نمی شوند، شما نمی دانید که کدام آیتم حذف می شود.

مقدار بازگشتی متد pop، آیتم حذف شده است.

thisset = {"apple", "banana", "cherry"}
x = thisset.pop()
print(x)
print(thisset)

حذف آیتم های یک set در پایتون (Python)

نکته: باز هم تاکید می کنیم که آیتم ها در set ایندکس نمی شوند بنابراین در روش حذف با متد pop شما نمی دانید که کدام آیتم حذف خواهد شد.

برای پاک کردن تمام آیتم های مجموعه از متد clear استفاده می کنیم.

thisset = {"apple", "banana", "cherry"}
thisset.clear()
print(thisset)

حذف آیتم های یک مجموعه در پایتون (Python)

برای حذف set به طور کامل از کلمه کلیدی del استفاده می کنیم.

thisset = {"apple", "banana", "cherry"}
del thisset
print(thisset)

حذف آیتم های یک set در پایتون (Python)

حلقه ها در نوع داده مجموعه پایتون (Python)

با استفاده از حلقه for می توانید آیتم های یک مجموعه را پیمایش کنید.

در مثال زیر با حلقه for مقادیر set پیمایش می شود و آیتم های آن در خروجی چاپ می شوند.

thisset = {"apple", "banana", "cherry"}
for x in thisset:
  print(x)

حلقه ها در مجموعه در پایتون (Python)

ادغام مجموعه ها در پایتون (Python)

روش های مختلفی برای ادغام دو یا چند set در پایتون وجود دارد که در ادامه آن ها را بررسی می کنیم.

  • متد union برای ادغام دو set

می توانید از این روش استفاده کنید که یک set جدید را به وجود می آورد و تمام آیتم های دو set را ادغام می کند.

در مثال زیر با استفاده از متد union دو مجموعه set1 و set2 با هم ادغام می شوند و درون مجموعه set3 ریخته می شود.

set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}
set3 = set1.union(set2)
print(set3)

متد union برای ادغام دو مجموعه در پایتون (Python)

  • متد update برای ادغام دو set

می توانید از این روش استفاده کنید که دو set را در یکی از set های موجود ادغام می کند.

در مثال زیر آیتم های موجود در مجموعه های set1 و set2 را درون مجموعه set1 ادغام می کند.

set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}
set1.update(set2)
print(set1)

متد update() برای ادغام دو set در پایتون (Python)

توجه: هم متد union و هم متد update  آیتم های تکراری را حذف می کنند.

نگه داشتن موارد تکراری

متد intersection_update فقط مواردی را که در هر دو مجموعه تکرار شده اند را نگه می دارد.

در مثال زیر آیتم های تکراری در مجموعه های x و y را نگه می دارد و بقیه موارد را حذف می کند.

x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}
x.intersection_update(y)
print(x)

نگه داشتن موارد تکراری مجموعه ها در پایتون (Python)

متد intersection یک مجموعه جدید می سازد که شامل مقادیر تکراری در دو مجموعه دیگر هستند.

در مثال زیر یک مجموعه جدید می سازد که شامل تمام آیتم های تکراری در دو مجموعه x و y است.

x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}
z = x.intersection(y)
print(z)

نگه داشتن موارد تکراری مجموعه ها در پایتون (Python)

حذف موارد تکراری

متد symmetric_difference_update فقط آیتم های یونیک در هر دو مجموعه را نگه می دارد و آیتم های تکراری را حذف می کند.

در مثال زیر آیتم های یونیک در دو مجموعه را برمی گرداند.

x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}
x.symmetric_difference_update(y)
print(x)

حذف موارد تکراری مجموعه ها در پایتون (Python)

متد symmetric_difference یک مجموعه جدید می سازد و مقادیر یونیک دو مجموعه را درون آن میریزد.

در مثال زیر مقادیر یونیک دو مجموعه x و y را درون مجموعه جدید z میریزد.

x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}
z = x.symmetric_difference(y)
print(z)

حذف موارد تکراری مجموعه ها در پایتون (Python)

متد های مجموعه در پایتون (Python)

پایتون مجموعه ای از متدهای داخلی دارد که می توانید برای تغییرات در set ها از آن ها استفاده کنید.

متد های set در پایتون (Python)
متد توضیحات
Add اضافه کردن یک آیتم به set
Clear پاک کردن تمامی آیتم های درون set
Copy یک نسخه از set را برمیگرداند
Difference یک مجموعه جدید حاوی آیتم های متفاوت بین دو مجموعه را برمیگرداند
Difference_update آیتم های موجود در این مجموعه که در مجموعه مشخص شده دیگری نیز وجود دارد را حذف می کند
Discard آیتم های مشخص شده را حذف می کند
Intersection یک مجموعه جدید می سازد که شامل آیتم های تکراری در دو مجموعه دیگر هستند.
Intersection_update مواردی را که در هر دو مجموعه یونیک هستند را حذف می کند
Isdisjoint اگر موارد تکراری وجود نداشته باشد مقدار true را برمیگرداند
Issubset اگر زیر مجموعه ی مجموعه مشخص شده باشد مقدار true را برمیگرداند
Issuperset اگر مجموعه مشخص شده زیر مجموعه ی مجموعه دیگری باشد مقدار true برگشت داده می شود.
Pop آیتم مشخص شده را حذف می کند
Symmetric_difference یک مجموعه جدید می سازد و مقادیر یونیک دو مجموعه را درون آن میریزد
Symmetric_difference_update آیتم های یونیک در هر دو مجموعه را نگه می دارد و آیتم های تکراری را حذف می کند
Union ادغام دو مجموعه در یک مجموعه جدید
Update ادغام دو مجموعه در مجموعه مشخص شده قبلی
Remove حذف آیتم مشخص شده

چون تعداد متد های این نوع داده ای زیاد است بررسی آن ها را به مقاله بعدی اختصاص می دهیم تا با مثال درک بهتری از این متدها داشته باشید.