آیتم های set یا مجموعه داخل جفت کورشه ({}) نوشته می شوند.
thisset = {"apple", "banana", "cherry"}
print(thisset)
نکته: set ها مرتب نیستند، پس نمی توان انتظار داشت که به همان صورت که تعریف می شوند در خروجی نیز به همان ترتیب ظاهر شوند.
آیتم های set
آیتم های set ها ترتیبی نیستند، تغییر ناپذیرند و مقادیر تکراری را مجاز نمی دانند.
مرتب نشده
مرتب نشده به این معنی است که آیتم ها ترتیب مشخصی ندارند.
آیتم ها در مجموعه ها هر بار ترتیبشان تغییر می کند و نمی توانیم با ایندکس یا کلید به آن ها دسترسی پیدا کنیم.
تغییرناپذیر
Set ها غیر قابل تبدیل هستند، به این معنی که نمی توانیم آیتم های آن را بعد از تعریف تغییر دهیم.
نکته: نمی توانیم بعد از تعریف set ها آیتم های آن را تغییر داد اما می توانیم به آیتم های آن آیتم جدیدی اضافه کنیم.
مجاز نبودن مقادیر تکراری
مجموعه ها نمی توانند آیتم های تکراری را بپذیرند .
در مثال زیر مقدار “apple” تکرار شده است و از چاپ آن صرف نظر شده است.
thisset = {"apple", "banana", "cherry", "apple"}
print(thisset)
به دست آوردن طول یک set
برای یه دست آوردن تعداد آیتم های یک مجموعه از متد len استفاده می کنیم.
در مثال زیر تعداد آیتم های set را برمیگرداند.
thisset = {"apple", "banana", "cherry"}
print(len(thisset))
نوع داده های مجاز در آیتم های set
می توانیم از تمام نوع های داده ای موجود در آیتم های set استفاده کرد.
در مثال زیر همانطور که می بینبد از سه نوع رشته ای، عددی و بولی استفاده کرده ایم.
set1 = {"apple", "banana", "cherry"}
set2 = {1, 5, 7, 9, 3}
set3 = {True, False, False}
همچنین می توانیم در یک متغیر با نوع داده ای set از ترکیب چند نوع داده ای استفاده کنیم.
set1 = {"abc", 34, True, 40, "male"}
تابع type
از دیدگاه پایتون set ها اشیا با نوع داده ای set تعریف می شوند.
<class 'set'>
در مثال زیر این مساله به طور واضح به شما نشان داده شده است.
myset = {"apple", "banana", "cherry"}
print(type(myset))
متد سازنده set
همچنین می توانیم برای ساخت مجموعه ها از تابع سازنده set استفاده کرد، استفاده از دو پرانتز را فراموش نکنید.
thisset = set(("apple", "banana", "cherry")) # note the double round-brackets
print(thisset)
دسترسی به آیتم های set در پایتون (Python)
نمی توان با مراجعه به ایندکس و یا کلید به آیتم ها در set دسترسی پیدا کرد.
اما می توانید با استفاده از حلقه for آیتم های آن را پیمایش کنید و یا با استفاده از کلمه کلیدی in بررسی کنید که آیا مقدار مشخصی در بین آیتم ها وجود دارد یا ن.
در مثال زیر یک set با حلقه for پیمایش شده و مقادیر آن در خروجی چاپ شده اند.
thisset = {"apple", "banana", "cherry"}
for x in thisset:
print(x)
در این مثال هم بررسی می کند که آیا مقدار مشخص شده “banana” درون آیتم های set وجود دارد یا نه، که در صورت وجود مقدار true و در صورت نبودن مقدار false را برمیگرداند.
thisset = {"apple", "banana", "cherry"}
print("banana" in thisset)
تغییر آیتم ها در مجموعه
شما بعد از ایجاد آیتم ها نمی توانید آن ها را تغییر دهید اما می توانید موارد جدیدی به آن اضافه کنید.
اضافه کردن به آیتم های set در پایتون (Python)
همانطور که در بالا گفته شد، شما بعد از ایجاد آیتم ها نمی توانید آن ها را تغییر دهید اما می توانید موارد جدیدی به آن اضافه کنید.
برای اضافه کردن آیتم جدیدی به set از متد add استفاده می کنیم.
در مثال زیر با استفاده از متد add یک آیتم به set اضافه شده است.
thisset = {"apple", "banana", "cherry"}
thisset.add("orange")
print(thisset)
اضافه کردن یک set به set دیگر
برای اضافه کردن آیتم هایی از یک set به set دیگر از متد update استفاده می کنیم.
در مثال زیر آیتم های مجموعه tropical به آیتم های مجموعه thisset اضافه می شوند.
thisset = {"apple", "banana", "cherry"}
tropical = {"pineapple", "mango", "papaya"}
thisset.update(tropical)
print(thisset)
اضافه کردن هر شی قابل پیمایش
قرار نیست که در متد update فقط از set ها استفاده کنیم، ما می توانیم هر متغیر قابل پیمایشی را اعم از لیست ها، تاپل پایتون ها و یا فرهنگ لغت ها را اضافه کنیم .
در مثال زیر آیتم های یک لیست به آیتم های یک set اضافه شده است.
thisset = {"apple", "banana", "cherry"}
mylist = ["kiwi", "orange"]
thisset.update(mylist)
print(thisset)
حذف آیتم های یک set در پایتون (Python)
برای حذف آیتم ها در set از یکی از متدهای remove و یا discard استفاده می کنیم.
در مثال زیر با استفاده از متد remove یک آیتم از set حذف شده است.
thisset = {"apple", "banana", "cherry"}
thisset.remove("banana")
print(thisset)
نکته: اگر آیتم مورد نظر برای حذف شدن وجود نداشته باشد متد remove یک پیغام خطا صادر می کند.
در مثال زیر با استفاده از متد discard یک آیتم از set حذف شده است.
thisset = {"apple", "banana", "cherry"}
thisset.discard("banana")
print(thisset)
نکته: اگر آیتم مورد نظر برای حذف شدن وجود نداشته باشد متد discard پیغام خطایی صادر نمی کند.
برای حذف آیتم ها می توانید از متد pop هم استفاده کنید، این متد آیتم را از آخر آیتم ها حذف می کند و از آنجا که آیتم ها در set ایندکس نمی شوند، شما نمی دانید که کدام آیتم حذف می شود.
مقدار بازگشتی متد pop، آیتم حذف شده است.
thisset = {"apple", "banana", "cherry"}
x = thisset.pop()
print(x)
print(thisset)
نکته: باز هم تاکید می کنیم که آیتم ها در set ایندکس نمی شوند بنابراین در روش حذف با متد pop شما نمی دانید که کدام آیتم حذف خواهد شد.
برای پاک کردن تمام آیتم های مجموعه از متد clear استفاده می کنیم.
thisset = {"apple", "banana", "cherry"}
thisset.clear()
print(thisset)
برای حذف set به طور کامل از کلمه کلیدی del استفاده می کنیم.
thisset = {"apple", "banana", "cherry"}
del thisset
print(thisset)
حلقه ها در نوع داده مجموعه پایتون (Python)
با استفاده از حلقه for می توانید آیتم های یک مجموعه را پیمایش کنید.
در مثال زیر با حلقه for مقادیر set پیمایش می شود و آیتم های آن در خروجی چاپ می شوند.
thisset = {"apple", "banana", "cherry"}
for x in thisset:
print(x)
ادغام مجموعه ها در پایتون (Python)
روش های مختلفی برای ادغام دو یا چند set در پایتون وجود دارد که در ادامه آن ها را بررسی می کنیم.
-
متد union برای ادغام دو set
می توانید از این روش استفاده کنید که یک set جدید را به وجود می آورد و تمام آیتم های دو set را ادغام می کند.
در مثال زیر با استفاده از متد union دو مجموعه set1 و set2 با هم ادغام می شوند و درون مجموعه set3 ریخته می شود.
set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}
set3 = set1.union(set2)
print(set3)
-
متد update برای ادغام دو set
می توانید از این روش استفاده کنید که دو set را در یکی از set های موجود ادغام می کند.
در مثال زیر آیتم های موجود در مجموعه های set1 و set2 را درون مجموعه set1 ادغام می کند.
set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}
set1.update(set2)
print(set1)
توجه: هم متد union و هم متد update آیتم های تکراری را حذف می کنند.
نگه داشتن موارد تکراری
متد intersection_update فقط مواردی را که در هر دو مجموعه تکرار شده اند را نگه می دارد.
در مثال زیر آیتم های تکراری در مجموعه های x و y را نگه می دارد و بقیه موارد را حذف می کند.
x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}
x.intersection_update(y)
print(x)
متد intersection یک مجموعه جدید می سازد که شامل مقادیر تکراری در دو مجموعه دیگر هستند.
در مثال زیر یک مجموعه جدید می سازد که شامل تمام آیتم های تکراری در دو مجموعه x و y است.
x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}
z = x.intersection(y)
print(z)
حذف موارد تکراری
متد symmetric_difference_update فقط آیتم های یونیک در هر دو مجموعه را نگه می دارد و آیتم های تکراری را حذف می کند.
در مثال زیر آیتم های یونیک در دو مجموعه را برمی گرداند.
x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}
x.symmetric_difference_update(y)
print(x)
متد symmetric_difference یک مجموعه جدید می سازد و مقادیر یونیک دو مجموعه را درون آن میریزد.
در مثال زیر مقادیر یونیک دو مجموعه x و y را درون مجموعه جدید z میریزد.
x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}
z = x.symmetric_difference(y)
print(z)
متد های مجموعه در پایتون (Python)
پایتون مجموعه ای از متدهای داخلی دارد که می توانید برای تغییرات در set ها از آن ها استفاده کنید.
متد | توضیحات |
---|---|
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 | حذف آیتم مشخص شده |
چون تعداد متد های این نوع داده ای زیاد است بررسی آن ها را به مقاله بعدی اختصاص می دهیم تا با مثال درک بهتری از این متدها داشته باشید.