آموزش Set یا مجموعه در پایتون
منبع: https://rasanika.com
یک مجموعه یا ست (set) در پایتون به این صورت تعریف میشود:
myset = {"apple", "banana", "cherry"}
ویژگی های یک Set یا مجموعه
ست ها برای ذخیره چندین آیتم در یک متغیر استفاده می شوند.
Set یکی از چهار نوع مختلف داده در پایتون است که برای ذخیره گروهی از دادهها استفاده میشود، سه نوع دیگر List ،Tuple و Dictionary نام دارند که هر کدام دارای ویژگی ها و کاربرد های متفاوتی هستند.
Set مجموعهای نامرتب، غیرقابل تغییر* و نمایهنشده است.
* آیتمهای ست غیر قابل تغییر هستند، اما می توانید آن ها را حذف کرده و یا موارد جدیدی اضافه کنید.
مثال
ایجاد یک مجموعه یا ست:
thisset = {"apple", "banana", "cherry"}
print(thisset)
Set ها نامرتب هستند، بنابراین نمی توانید مطمئن باشید که آیتم ها به کدام ترتیب ظاهر می شوند.
آیتم های Set
آیتم های Set نامرتب و غیرقابل تغییر هستند و نمیتوانند مقادیر تکراری داشته باشند.
نامرتب
آیتم های ست می توانند هر بار که از آنها استفاده می کنید با ترتیب متفاوتی ظاهر شوند و نمی توان با اندیس یا کلید آنها را به دست آورد.
غیر قابل تغییر
آیتم های مجموعه غیر قابل تغییر هستند، به این معنی که پس از ایجاد ست، نمی توانیم آیتم هایش را تغییر دهیم.
پس از ایجاد یک Set، نمی توانید آیتمهای آن را تغییر دهید، اما می توانید آیتمها را حذف کرده و یا موارد جدیدی به ست اضافه کنید.
تکرار مجاز نیست
Set ها نمی توانند دو آیتم با مقدار یکسان داشته باشند.
مثال
مقادیر تکراری نادیده گرفته خواهند شد:
thisset = {"apple", "banana", "cherry", "apple"}
print(thisset)
مقدار True
و 1
در Set ها یکسان در نظر گرفته شده و تکراری محسوب میشود:
مثال:
thisset = {"apple", "banana", "cherry", True, 1, 2}
print(thisset)
مقدار False
و 0
در Set ها یکسان در نظر گرفته شده و تکراری محسوب میشود:
مثال:
thisset = {"apple", "banana", "cherry", False, True, 0}
print(thisset)
تعداد آیتم های یک Set
برای به دست آوردن تعداد آیتم های یک مجموعه یا ست، از تابع len()
استفاده کنید.
مثال
thisset = {"apple", "banana", "cherry"}
print(len(thisset))
انواع داده آیتم های Set
آیتم های ست یا مجموعه می توانند از هر نوع داده ای تشکیل شده باشند:
مثال
انواع داده های رشته ای، int و بولی:
set1 = {"apple", "banana", "cherry"}
set2 = {1, 5, 7, 9, 3}
set3 = {True, False, False}
همچنین یک Set می تواند شامل ترکیبی از انواع مختلف داده ها باشد:
مثال
رشته ها، اعداد صحیح و مقادیر بولی داخل یک ست:
set1 = {"abc", 34, True, 40, "male"}
type()
از دیدگاه پایتون، مجموعه ها به عنوان اشیایی با نوع داده "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
شما نمی توانید با استفاده از یک اندیس یا یک کلید به آیتم موجود در یک Set دسترسی پیدا کنید. اما میتوانید با استفاده از یک حلقه for
روی آیتمهای Set حلقه بزنید.
همچنین میتوانید با استفاده از کلیدواژه in
بررسی کنید که آیا مقدار مشخصی در مجموعه وجود دارد یا خیر.
مثال
مقادیر داخل یک Set را چاپ کنید:
thisset = {"apple", "banana", "cherry"}
for x in thisset:
print(x)
بررسی کنید که آیا "banana" در Set وجود دارد یا خیر:
thisset = {"apple", "banana", "cherry"}
print("banana" in thisset)
اضافه کردن آیتم جدید به Set
برای افزودن یک آیتم به یک Set از متد add()
استفاده کنید.
مثال:
thisset = {"apple", "banana", "cherry"}
thisset.add("orange")
print(thisset)
اضافه کردن آیتم از Set های دیگر
برای افزودن آیتم از Set دیگری به Set فعلی، از متد update()
استفاده کنید.
مثال
آیتم های ست tropical
را به thisset
اضافه کنید:
thisset = {"apple", "banana", "cherry"}
tropical = {"pineapple", "mango", "papaya"}
thisset.update(tropical)
print(thisset)
اضافه کردن از هر Iterable یا تکرارگر دیگری
لزومی ندارد شی موجود در update()
حتما Set باشد، می توانید هر شیء تکرار شونده ای (تاپل ها، لیست ها، دیکشنری ها و غیره) را از طریق متد update به Set اضافه کنید.
مثال
عناصر یک لیست را به ست اضافه کنید:
thisset = {"apple", "banana", "cherry"}
mylist = ["kiwi", "orange"]
thisset.update(mylist)
print(thisset)
حذف آیتم از یک Set
برای حذف یک آیتم از یک ست، از متد remove()
یا discard()
استفاده کنید.
مثال استفاده از متد remove()
thisset = {"apple", "banana", "cherry"}
thisset.remove("banana")
print(thisset)
اگر آیتمی که باید حذف شود وجود نداشته باشد remove()
خطا میدهد.
مثال استفاده از متد discard()
thisset = {"apple", "banana", "cherry"}
thisset.discard("banana")
print(thisset)
اگر آیتمی که باید حذف شود وجود نداشته باشد discard()
خطا نمیدهد.
شما همچنین می توانید از متد pop()
برای حذف یک آیتم استفاده کنید، اما این روش یک آیتم تصادفی را حذف می کند، بنابراین نمی توانید مطمئن باشید که چه موردی حذف می شود.
مقدار برگشتی روش pop()
، همان آیتم حذف شده است.
مثال
یک مورد تصادفی را با استفاده از pop()
حذف کنید:
thisset = {"apple", "banana", "cherry"}
x = thisset.pop()
print(x)
print(thisset)
ست ها نامرتب هستند، بنابراین هنگام استفاده از pop()
روش، نمیدانید کدام مورد حذف می شود.
متد clear()
مجموعه را خالی می کند.
مثال:
thisset = {"apple", "banana", "cherry"}
thisset.clear()
print(thisset)
کلیدواژه del
مجموعه را به طور کامل حذف می کند.
مثال:
thisset = {"apple", "banana", "cherry"}
del thisset
print(thisset)
حلقه روی آیتم های Set
با استفاده از یک حلقه for
می توانید روی آیتم های یک Set حلقه بزنید.
مثال:
thisset = {"apple", "banana", "cherry"}
for x in thisset:
print(x)
ترکیب (Join) چند Set با یکدیگر
راه های مختلفی برای ترکیب دو یا چند مجموعه به یکدیگر در پایتون وجود دارد.
میتوانید از تابع union()
استفاده کنید که یک مجموعه جدید حاوی همه آیتمها از هر دو مجموعه را بر میگرداند، یا تابع update()
که همه موارد را از یک ست به ست دیگر وارد میکند:
مثال استفاده از تابع union
set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}
set3 = set1.union(set2)
print(set3)
مثال استفاده از تابع update
set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}
set1.update(set2)
print(set1)
توجه: هر دو تابع union()
و update()
موارد تکراری را حذف میکنند.
فقط موارد تکراری را نگه دارید
متد intersection_update()
فقط مواردی را که در هر دو مجموعه وجود دارد، نگه میدارد.
مثال
x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}
x.intersection_update(y)
print(x)
متد intersection()
مجموعه جدیدی برمی گرداند که فقط شامل مواردی است که در هر دو مجموعه وجود دارد.
مثال
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 = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}
z = x.symmetric_difference(y)
print(z)
متد های Set
پایتون مجموعه ای از متدهای داخلی دارد که می توانید هنگام کار با Set ها از این متد ها استفاده کنید:
Method | Description |
add() | Adds an element to the set |
clear() | Removes all the elements from the set |
copy() | Returns a copy of the set |
difference() | Returns a set containing the difference between two or more sets |
difference_update() | Removes the items in this set that are also included in another, specified set |
discard() | Remove the specified item |
intersection() | Returns a set, that is the intersection of two other sets |
intersection_update() | Removes the items in this set that are not present in other, specified set(s) |
isdisjoint() | Returns whether two sets have a intersection or not |
issubset() | Returns whether another set contains this set or not |
issuperset() | Returns whether this set contains another set or not |
pop() | Removes an element from the set |
remove() | Removes the specified element |
symmetric_difference() | Returns a set with the symmetric differences of two sets |
symmetric_difference_update() | inserts the symmetric differences from this set and another |
union() | Return a set containing the union of sets |
update() | Update the set with the union of this set and others |
آرایهها (دادههای گروهی) در پایتون
چهار نوع داده برای کار با مجموعه ای از داده ها در زبان برنامه نویسی پایتون وجود دارد:
لیست مجموعه ای مرتب و قابل تغییر است. اعضای تکراری مجاز است.
تاپل مجموعه ای مرتب و غیرقابل تغییر است. اعضای تکراری مجاز است.
ست مجموعه ای نامرتب و غیرقابل تغییر* و ایندکس نشده است. بدون عضو تکراری.
دیکشنری مجموعه ای مرتب** و قابل تغییر است. بدون عضو تکراری.
* آیتمهای ست غیر قابل تغییر هستند، اما می توانید آنها را حذف کرده یا موارد جدید اضافه کنید.
**از نسخه 3.7 پایتون، دیکشنری ها دارای ترتیب هستند. در پایتون 3.6 و قبل، دیکشنری ها نامرتب هستند.
هنگام انتخاب نوع داده برای تعریف یک آرایه، درک خواص آن نوع مهم است. انتخاب نوع مناسب برای یک مقدار می تواند به معنای افزایش کارایی و امنیت باشد.