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

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

زمان مطالعه

5 دقیقه

تعداد بازدید

91

تعداد پرسش ها

0

افزودن به لیست علاقه مندی ها


برچسب ها :


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

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

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

زمان مطالعه

5 دقیقه

تعداد بازدید

91

تعداد پرسش ها

0

افزودن به لیست علاقه مندی ها


برچسب ها :


اشتراک گذاری این مطلب

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

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

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

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

 

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

 

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

 

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

آیتم های set

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

مرتب نشده

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

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

تغییرناپذیر

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

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

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

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

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

 

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

 

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

 

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

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

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

 

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

 

به دست آوردن طول یک set در پایتون (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 ها از تابع سازنده set() استفاده کرد، استفاده از دو پرانتز را فراموش نکنید.

 

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

 

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

 

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

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

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

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

 

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

 

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

 

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

 

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

 

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

 

تغییر آیتم ها در set

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

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

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

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

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

 

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

 

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

 

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

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

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

 

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

 

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

 

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

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

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

 

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

 

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

 

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

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

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

 

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

 

حذف آیتم های یک set در پایتون (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() شما نمی دانید که کدام آیتم حذف خواهد شد.

برای پاک کردن تمام آیتم های set از متد clear() استفاده می کنیم.

 

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

 

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

 

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

 

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

 

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

 

حلقه ها در set در پایتون (Python)

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

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

 

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

 

حلقه ها در set در پایتون (Python)

 

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

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

  • 1-متد union() برای ادغام دو set

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

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

 

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

 

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

 

  • 2-متد 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)

 

متد های set در پایتون (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() حذف آیتم مشخص شده

 

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

سامان محمدپور
در مورد نویسنده : موفقیت بستگی به تلاش هر شخص داره، هممون ب همون اندازه که تلاش کردیم موفق شدیم.


پرسش و پاسخ
0
دوره پیشنهادی
دوره پیشنهادی