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

مجموعه‌ای از داده‌ها که بین دو آکلاد ‘{‘، ‘}’ قرار میگیره در پایتون مجموعه‌ (set) نامیده می‌شود.این نوع داده‌ها نامرتب و غیر قابل اندیس دهی هستند. مانند لیست‌ها یا چندتایی های مرتب نمی‌توان با استفاده از اندیس‌ها به اعضای این نوع داده‌ها دسترسی داشت.

مجموعه‌ها در پایتون به صورت زیر تعریف می‌شوند.(این مثال روی کامپیوتر خود من و با پایتون ۳٫۸٫۳ اجرا شده است.)

┌─[trueans@parrot]─[~]
└──╼ $python3
Python 3.8.5 (default, Jul 20 2020, 18:32:44) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> my_set={'apple', 'bannana', 'cherry'}
>>> print(my_set)
{'cherry', 'apple', 'bannana'}

حالا به مفهوم غیر مرتب که دقیقا از مفهوم مجموعه‌ها در ریاضی اقتباس شده دقت کنید.

غیر مرتب بودن به این معنی است که در صورت جابه‌جایی عناصر مجموعه‌ها مجموعه‌ی جدیدی ایجاد نمی‌گردد.

┌─[trueans@parrot]─[~]
└──╼ $python3
Python 3.8.5 (default, Jul 20 2020, 18:32:44) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> set={'apple','bannana'}
>>> set1={'bannana','apple'}
>>> print(set== set1)
True

بیشتر بخوانید: دستورات شرطی در پایتون

دستیابی به عناصر مجموعه‌ها در پایتون

با توجه به این که مجموعه‌ها در پایتون مجموعه‌ای از داده‌های غیر مرتب هستند لذا آدرس دهی مجموعه‌ها غیر ممکن است.

اما شما می‌توانید با استفاده از حلقه‌ی for یک مجموعه را در پایتون پیمایش و از داده‌های آن استفاده کنید.

با استفاده از عمگرهای عضویت می‌توانید عضویت یا عدم عضویت یک مقدار را در مجموعه‌ای خاص مشخص نمائید.

>>> set={'apple','bannana'}
>>> for x in set:
...  print(x)
... 
bannana
apple

>>> if 'apple' in set:
...  print('ok')
... 
ok

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

مجموعه‌ ها در پایتون یکبار ایجاد می‌شوند اما دیگر اعضای آن قابل تغییر نیست. اما می‌توانید به مجموعه‌ها اعضای جدید اضافه نمائید.

افزودن آیتم به مجموعه در پایتون

با استفاده از تابع ()add می‌توانید یک عضو به مجموعه‌ها اضافه نمائید.

برای افزودن بیش از یک عضو به صورت همزمان می‌توانید از تابع ()update استفاده کنید.

>>> set={'apple','bannana'}
>>> set.add('orange')
>>> print(set)
{'bannana', 'orange', 'apple'}
>>> set.update(['mango','melon'])
>>> print(set)
{'bannana', 'mango', 'orange', 'melon', 'apple'}

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

با استفاده از تابع توکار ()len می‌توانید طول نوع داده مجموعه در پایتون را به دست آورید.

>>> set={'apple','bannana','orange'}
>>> print(len(set))
۳

حذف یک ایتم از نوع داده مجموعه در پایتون

برای حذف یک عنصر یا ایتم از مجموعه در پایتون از تابع ()remove و یا تابع ()discard استفاده نمائید.

>>> set={'apple','orange','bannana','lemon'}
>>> set.remove('bannana')
>>> print(set)
{'apple', 'orange', 'lemon'}
>>> set.remove('bannana')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'bannana'
>>> set.discard('lemon')
>>> print(set)
{'apple', 'orange'}
>>> set.discard('lemon')

همانطور که در تکه کد بالا مشخص است اگر عنصری که میخواهید حذف کنید عضو مجموعه مورد نظر نباشد تابع ()remove یک خطا برمی‌گرداند اما تابع ()discard خطایی تولید نمی‌کند.

تابع ()pop به صورت شانسی یک عضو از مجموعه را حذف کرده و آن را برمی‌گرداند. با توجه به این که نمی‌توان مجموعه‌ها را اندیس دهی کرد همانند لیست‌ها نمی‌توانید اندیس عنصر مورد نظر را به عنوان پارامتر به تابع ارسال کنید و انتظار داشته باشید این تابع اندیس مورد نظر را از مجموعه حذف نماید.

>>> set={'bannana','apple','orange','melon','cherray'}
>>> print(set.pop())
melon
>>> print(set.pop())
bannana
>>> print(set.pop())
orange

با استفاده از تابع ()clear می‌توان تمامی اعضای یک لیست را حذف کرد.

>>> set={'bannana','apple','orange'}
>>> set.clear()
>>> print(set)
set()

با استفاده از کلمه‌ی کلیدی del می‌توانید لیست را حذف کنید. دقت کنید که تابع ()clear کل اعضای لیست را حذف می‌کرد اما خود لیست را نه. اما کلمه‌ء کلیدی del خود لیست را حذف می‌کند.

>>> del myset
>>> print(myset)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'myset' is not defined

الحاق مجموعه‌ها در پایتون

با چند روش می‌توان دو لیست را الحاق کرد.

الحاق مجموعه با استفاده از تابع ()union در پایتون

این تابع یک مجموعه‌ی جدید برمی‌گرداند که شامل عناصر دو لیست است.

>>> set1={'apple','orange'}
>>> set2={'melon','bannana'}
>>> set=set1.union(set2)
>>> print(set)
{'bannana', 'apple', 'orange', 'melon'}

الحاق دو لیست با استفاده از تابع ()update

از تابع در پایتون برای الحاق دو مجموعه استفاده می‌گردد. این تابع اعضای یک مجموعه را به مجموعه‌ی دیگری اضافه می‌کند.

>>> set1 = {"a", "b" , "c"}
>>> set2 = {1, 2, 3}
>>> set1.update(set2)
>>> print(set1) 
{۱, ۲, ۳, 'b', 'c', 'a'}

توابع ()union و ()update اعضای تکراری را از مجموعه حذف می‌کند.

دیدگاه خود را بنویسید