مجموعهها در پایتون

مجموعهها در پایتون
مجموعهها (Sets) در پایتون ساختارهای دادهای قدرتمندی هستند که برای ذخیرهسازی مجموعهای از مقادیر منحصربهفرد استفاده میشوند. آنها با لیستها (Lists) تفاوت دارند، زیرا ترتیبدار نیستند و مقادیر تکراری را ذخیره نمیکنند.
این مقاله راهنمای جامع و کاملی برای مجموعهها در پایتون، از جمله نحوه ایجاد، دسترسی، افزودن، حذف، پیمایش، ادغام و استفاده از روشهای مختلف آنها ارائه میدهد.
1. مجموعهها چیستند؟
فرض کنید لیستی از خرید دارید که شامل موارد زیر است:
- سیب
- موز
- پرتقال
- سیب
به طور طبیعی، شما فقط یک مورد از هر میوه را میخواهید، حتی اگر چندین بار در لیست خرید خود آن را نوشته باشید. در اینجا مجموعهها به کمک شما میآیند!
یک مجموعه در پایتون مجموعهای از مقادیر منحصربهفرد را ذخیره میکند. به این معنی که هر عنصر فقط یک بار در مجموعه ظاهر میشود. ترتیب عناصر در مجموعه مهم نیست و مجموعهها میتوانند از انواع دادههای مختلف، مانند اعداد، رشتهها و اشیاء، ذخیره کنند.
2. ایجاد مجموعه
ایجاد مجموعه در پایتون بسیار ساده است. از تابع set() به همراه مقادیر اولیه خود استفاده کنید. مقادیر اولیه میتوانند لیست، رشته، دیکشنری یا حتی یک مجموعه خالی باشند.
# ایجاد مجموعه از لیست
my_set = set([1, 2, 3, 4, 5])
# ایجاد مجموعه از رشته
my_set = set("Hello, Python!")
# ایجاد مجموعه خالی
my_set = set()
3. دسترسی به آیتمهای مجموعه
از آنجایی که مجموعهها بدون ترتیب هستند، نمیتوانید با استفاده از اندیس به عناصر آنها دسترسی پیدا کنید. با این حال، میتوانید از روشهای مختلفی برای بررسی وجود عنصر در مجموعه و یا تکرار در آن استفاده کنید.
in: برای بررسی وجود یک عنصر در مجموعه استفاده میشود.for: برای پیمایش در تمام عناصر مجموعه استفاده میشود.
# بررسی وجود عنصر
if 4 in my_set:
print("4 در مجموعه وجود دارد")
else:
print("4 در مجموعه وجود ندارد")
# پیمایش در مجموعه
for x in my_set:
print(x)
4. افزودن آیتم به مجموعه
برای اضافه کردن یک عنصر جدید به مجموعه، از روش add() استفاده کنید.
my_set.add(6)
print(my_set)
5. حذف آیتم از مجموعه
برای حذف یک عنصر از مجموعه، از روش remove() یا discard() استفاده کنید. روش remove() خطایی ایجاد میکند اگر عنصر مورد نظر در مجموعه وجود نداشته باشد، در حالی که discard() به آرامی از این موضوع عبور میکند.
my_set.remove(4)
print(my_set)
my_set.discard(7)
print(my_set)
6. عملیات مجموعه
پایتون مجموعههای مختلفی از عملیات را برای ترکیب مجموعهها، مانند اجتماع، اشتراک و تفاوت ارائه میدهد.
union(): اجتماع دو مجموعه را برمیگرداند (همه عناصر در هر دو مجموعه).intersection(): اشتراک دو مجموعه را برمیگرداند (عناصر موجود در هر دو مجموعه).difference(): تفاوت دو مجموعه را برمیگرداند (عناصری که در مجموعه اول اما نه در مجموعه دوم وجود دارند).
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1.union(set2)) # {1, 2, 3, 4, 5}
print(set1.intersection(set2)) # {3}
print(set1.difference(set2)) # {1, 2}
7. روشهای مجموعه
مجموعهها تعدادی روش مفید برای انجام وظایف مختلف ارائه میدهند، مانند بررسی اندازه مجموعه، پاک کردن مجموعه و تبدیل مجموعه به انواع داده دیگر.
len(): اندازه مجموعه را برمیگرداند.clear(): تمام عناصر مجموعه را حذف میکند.pop(): یک عنصر تصادفی را از مجموعه حذف کرده و آن را برمیدارد.copy(): یک کپی از مجموعه ایجاد میکند.
print(len(my_set)) # تعداد عناصر مجموعه را چاپ میکند
my_set.clear() # تمام عناصر را حذف میکند
print(my_set) # مجموعه خالی را چاپ میکند.
8. مثالهای کاربردی
مجموعهها در طیف گستردهای از برنامهها در پایتون مفید هستند، از جمله:
حذف مقادیر تکراری از لیست:
my_list = [1, 2, 3, 1, 2, 3, 4, 5]
unique_list = set(my_list)
print(unique_list) # {1, 2, 3, 4, 5}
یافتن عناصر مشترک در دو لیست:
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
common_elements = set1.intersection(set2)
print(common_elements) # {3, 4}
چک کردن اینکه آیا یک رشته یک زیر رشته از رشته دیگر است:
def is_substring(str1, str2):
return set(str1).issubset(str2)
print(is_substring("hello", "Hello, world!")) # True
print(is_substring("abc", "123abc")) # False
9. منابع مفید
- مجموعهها در پایتون:جامعترین آموزش برنامه نویسی پایتون در ایران
- مجموعهها در پایتون: https://www.w3schools.com/js/js_object_sets.asp
- آموزش مجموعهها در پایتون: https://faradars.org/courses/fvpht9808s04-class-in-python
- مجموعهها در پایتون: https://www.geeksforgeeks.org/python-programming-language/
این مقاله راهنمای جامع و کاملی برای مجموعهها در پایتون بود. با تمرین و مطالعه بیشتر، به راحتی میتوانید از این ساختارهای داده قدرتمند برای حل طیف گستردهای از مسائل برنامهنویسی استفاده کنید.