مجموعه ها در پایتون
مجموعهای از دادهها که بین دو آکلاد ‘{‘، ‘}’ قرار میگیره در پایتون مجموعه (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
اعضای تکراری را از مجموعه حذف میکند.