حتی اگر به تازگی سفر پایتون خود را شروع کرده اید، به احتمال زیاد با مجموعه set پایتون مواجه شده اید. اما آیا می دانید چگونه از آنها به طور موثر استفاده کنید؟ این مقاله قصد دارد تمام عملیات اصلی مجموعه set پایتون را پوشش دهد تا به شما احساس بهتری درباره زمان و نحوه استفاده از این ساختار داده مهم بدهد.
# دنباله set در پایتون چیست؟
ابتدا بیایید با اصول اولیه شروع کنیم. مجموعه set یک نوع داخلی در پایتون است که دارای تعدادی ویژگی مهم است:
- setها بدون نظم هستند به عبارت دیگر، آیتم ها به ترتیب تصادفی درج می شوند، بنابراین نمی توانید با استفاده از ایندکسها به عناصر دسترسی پیدا کنید.
- setها فقط شامل عناصر منحصر به فرد هستند. هیچ تکراری در set مجاز نیست.
- یک set قابل تغییر است. یک set را می توان تغییر داد، و امکان افزودن و حذف موارد از یک set وجود دارد.
- عناصر یک set باید از نوع تغییرناپذیر باشند. برای مثال رشته ها، اعداد صحیح، floatها و تاپل ها انواع قابل قبولی برای یک set هستند.
- یک set ممکن است شامل عناصری از انواع مختلف باشد. به عنوان مثال، می توانید ترکیبی از اعداد، رشته ها و تاپل ها را در یک set قرار دهید.
اکنون زمان آن است که ببینیم چگونه setهای پایتون را تعریف و اصلاح کنیم.
# ساخت و تغییر set در پایتون
+ ایجاد کردن یک set در پایتون
دو راه برای ایجاد یک مجموعه وجود دارد: میتوانید از تابع set() داخلی استفاده کنید یا در عوض، مجموعهای را با آکولاد تعریف کنید. در اینجا چند نمونه آورده شده است:
# Creating sets using built-in function
set_one = set((0, "one", (2, 3, 4)))
set_one
# output
{(2, 3, 4), 0, 'one'}
# Creating sets using built-in function
set_two = set("Game of Thrones")
set_two
# output
{' ', 'G', 'T', 'a', 'e', 'f', 'h', 'm', 'n', 'o', 'r', 's'}
# Creating sets using curly braces
set_three = {0, "one", (2, 3, 4)}
set_three
# output
{(2, 3, 4), 0, 'one'}
# Creating sets using curly braces
set_four = {"Game of Thrones"}
set_four
# output
{'Game of Thrones'}
آرگومان تابع set() باید یک تکرارپذیر(iterable) باشد که لیستی از اشیاء (به عنوان مثال، تاپل ها، لیست ها، رشته ها) را تولید کند. اینها در set قرار خواهند گرفت. از طرف دیگر، اگر از آکولادها استفاده می کنید، خود شی به صورت دستی قرار می گیرند. بنابراین احتمالاً تفاوت را در استفاده از این دو رویکرد متوجه شده اید:
- برای ایجاد set_one یک تاپل به تابع set() میدهیم، اما اشیاء را مستقیماً در آکولادها قرار میدهیم تا set_three را با همان عناصر بدست آوریم.
- تابع set() رشتهای را که برای ایجاد set_two ارسال میکنیم بهعنوان یک تکرارپذیر در نظر میگیرد، و بنابراین set حاصل مجموعهای از حروف این رشته است، در حالی که آکولادها رشتهای را بهعنوان یک عنصر متمایز از set در نظر میگیرند و بنابراین ما set_four را با یک مقدار دریافت میکنیم.
همچنین، توجه داشته باشید که setهای بهدستآمده نامرتب هستند و مقادیر تکراری فقط یک بار در set نمایش داده میشوند (مانند حرف 'e' در مثال دوم).
+ بررسی عضویت و اندازه یک set در پایتون
میتوانید از تابع len() برای بررسی تعداد عناصر در یک set استفاده کنید، و همچنین میتوانید به ترتیب با استفاده از عملگرهای in, or, not وجود یک عنصر خاص در یک set را بررسی کنید.
# Checking the number of elements in a set
len(set_one)
# output
3
# Checking if an element is in a set
0 in set_one
# output
True
# Checking if an element is not in a set
0 not in set_one
# output
False
+ اضافه کردن المان به یک set در پایتون
می توانید از متد add() برای درج یک عنصر در یک set استفاده کنید. اگر می خواهید چندین شی را به طور همزمان در یک set قرار دهید، از متد update() استفاده کنید. در اینجا چند نمونه آورده شده است:
# Adding a single element using add() method
my_set = {'a', 'b', 'c'}
my_set.add('d')
my_set
# output
{'a', 'b', 'c', 'd'}
# Adding multiple elements using update() method
my_set.update('e', 'f', 'g', 'b')
my_set
# output
{'a', 'b', 'c', 'd', 'e', 'f', 'g'}
# Adding multiple elements of different types (i.e., adding a tuple and another set)
my_set.update(('a', 'h'), {'c', 'i', 'j'})
my_set
# output
{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'}
+ حذف المان از یک set در پایتون
چند راه برای حذف موارد از set وجود دارد:
1. اگر میخواهید یک عنصر را از یک set حذف کنید، از متد remove() استفاده کنید یا اگر آیتم مربوطه در set نباشد، پیام خطا دریافت کنید.
# Using remove() to remove an item that doesn't exist in a set
my_set.remove('o')
my_set
# output
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
in ()
1 # Using remove() to remove an item that doesn't exist in a set
----> 2 my_set.remove('o')
3 my_set
KeyError: 'o'
2. اگر میخواهید یک عنصر را از یک set حذف کنید، اما اگر آیتم داده شده در set نباشد، نیازی به پیغام خطا ندارید، از متد discard() استفاده کنید.
# Using discard() to remove an item that doesn't exist in a set
my_set.discard('o')
my_set
# output
{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'}
3. از متد pop() برای حذف و برگرداندن یک عنصر تصادفی از یک set استفاده کنید.
# Using pop() to remove and return a random element
print(my_set.pop())
print(my_set)
# output
j
{'d', 'b', 'e', 'c', 'a', 'i', 'h', 'g', 'f'}
4. از متد clear() برای حذف همه موارد از یک set استفاده کنید.
# Using clear() to remove all elements from a set
my_set.clear()
my_set
# output
set()
اینها روش های پایه هستند که می توانید برای اصلاح یک set استفاده کنید. بیایید اکنون به سراغ برخی از عملیات ها و روش های پیشرفته set پایتون برویم.
ارسال نظر