set ها مانند لیست ها و tuple ها برای ذخیره چندین مقدار درون یک متغیر استفاده می شوند.
set ها یکی دیگر از 4 نوع داده داخلی هستند که برای ذخیره مجموعه داده ها استفاده می شوند، دو نوع لیست ها و tuple ها را در دو مقاله قبل برای شما به طور مفصل شرح دادیم و فقط فرهنگ لغت یا همان dictionary باقی مانده که بعد از set ها آن را نیز به طور مفصل برای شما شرح می دهیم.
set ها نه ایندکس دارند و نه مرتب می شوند، به این معنی که مجموعه ها به صورت تصادفی در خروجی ظاهر می شوند، یعنی با هر بار refresh شدن ترتیب آن عوض می شود.
آیتم های set داخل جفت کورشه ({}) نوشته می شوند.
thisset = {"apple", "banana", "cherry"}
print(thisset)
نکته: set ها مرتب نیستند، پس نمی توان انتظار داشت که به همان صورت که تعریف می شوند در خروجی نیز به همان ترتیب ظاهر شوند.
آیتم های set
آیتم های set ها ترتیبی نیستند، تغییر ناپذیرند و مقادیر تکراری را مجاز نمی دانند.
مرتب نشده
مرتب نشده به این معنی است که آیتم ها ترتیب مشخصی ندارند.
آیتم ها در set ها هر بار ترتیبشان تغییر می کند و نمی توانیم با ایندکس یا کلید به آن ها دسترسی پیدا کنیم.
تغییرناپذیر
Set ها غیر قابل تبدیل هستند، به این معنی که نمی توانیم آیتم های آن را بعد از تعریف تغییر دهیم.
نکته: نمی توانیم بعد از تعریف set ها آیتم های آن را تغییر داد اما می توانیم به آیتم های آن آیتم جدیدی اضافه کنیم.
مجاز نبودن مقادیر تکراری
Set ها نمی توانند آیتم های تکراری را بپذیرند .
در مثال زیر مقدار “apple” تکرار شده است و از چاپ آن صرف نظر شده است.
thisset = {"apple", "banana", "cherry", "apple"}
print(thisset)
به دست آوردن طول یک set
برای یه دست آوردن تعداد آیتم های یک 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 ها از تابع سازنده 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
شما بعد از ایجاد آیتم ها نمی توانید آن ها را تغییر دهید اما می توانید موارد جدیدی به آن اضافه کنید.
اضافه کردن به آیتم های 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 ها استفاده کنیم، ما می توانیم هر متغیر قابل پیمایشی را اعم از لیست ها، tuple ها و یا فرهنگ لغت ها را اضافه کنیم .
در مثال زیر آیتم های یک لیست به آیتم های یک 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() شما نمی دانید که کدام آیتم حذف خواهد شد.
برای پاک کردن تمام آیتم های set از متد clear() استفاده می کنیم.
thisset = {"apple", "banana", "cherry"}
thisset.clear()
print(thisset)
برای حذف set به طور کامل از کلمه کلیدی del استفاده می کنیم.
thisset = {"apple", "banana", "cherry"}
del thisset
print(thisset)
حلقه ها در set در پایتون (Python)
با استفاده از حلقه for می توانید آیتم های یک set را پیمایش کنید.
در مثال زیر با حلقه for مقادیر set پیمایش می شود و آیتم های آن در خروجی چاپ می شوند.
thisset = {"apple", "banana", "cherry"}
for x in thisset:
print(x)
ادغام 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)
-
2-متد 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)
متد های set در پایتون (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() | حذف آیتم مشخص شده |
چون تعداد متد های این نوع داده ای زیاد است بررسی آن ها را به مقاله بعدی اختصاص می دهیم تا با مثال درک بهتری از این متدها داشته باشید.


آموزش Drag And Drop (کشیدن و رها کردن) عناصر در HTML

موقعیت جغرافیایی (لوکیشن یا مکان) در HTML

چگونه از YouTube در HTML استفاده کنیم؟

افزونه ها (plug-ins) در HTML

تگ audio در HTML

تگ video در HTML

Multimedia (چند رسانه ای) در HTML

عنصر SVG در زبان نشانه گذاری HTML

عنصر canvas در زبان نشانه گذاری HTML

ویژگی form عنصر input در زبان نشانه گذاری HTML