Collections در پایتون

۴ نوع داده‌ی Collection در زبان برنامه نویسی پایتون وجود دارد:
List: یک مجموعه‌ از داده‌ها که مرتب و قابل تغییر است و می‌تواند اعضای تکراری داشته باشد.
Tuple: یک مجموعه‌ از داده‌ها که مرتب است و قابل تغییر نیست و می‌تواند اعضای تکراری داشته باشد.
Set: یک مجموعه‌ از داده‌ها که نامرتب و بدون اندیس است و نمی‌تواند اعضای تکراری داشته باشد.Dictionary: یک مجموعه‌ از داده‌ها که نامرتب، قابل تغییر و دارای اندیس است و نمی‌تواند اعضای تکراری داشته باشد.
هنگام انتخاب یک نوع از Collection باید ویژگی‌های آن را بدانید. انتخاب نوع صحیح برای یک مجموعه‌ از داده‌های خاص می‌تواند در افزایش راندمان و امنیت مؤثر باشد.

Set

یک مجموعه‌ از داده‌ها که مرتب و شاخص‌گذاری‌شده نیست و نمی‌تواند اعضای تکراری داشته باشد.
مثال زیر یک Set ایجاد می‌کند.

# Input
thisset = {"apple", "banana", "cherry"}
print(thisset)
# Note: the set list is unordered, meaning: the items will appear in a random order.
# Refresh this page to see the change in the result.

# Output
{'cherry', 'banana', 'apple'}

دقت داشته باشید ست‌ها مرتب نیستند. بنابراین نمی‌توانید مطمئن شوید که آیتم‌ها به چه ترتیبی قرار می‌گیرند.

دسترسی به آیتم‌ها

به علت اینکه Set نامرتب و بدون اندیس است با استفاده از اندیس‌ها نمی‌توانید به آیتم‌های آن دسترسی داشته باشید.
اما می‌توانید با استفاده از حلقه‌ی For آیتم‌های Set را پیمایش کنید و یا با استفاده از عملگر IN ببینید آیا مقدار مشخص شده در Set وجود دارد یا خیر.
مثال زیر آیتم‌های Set را چاپ می‌کند.

# Input
thisset = {"apple", "banana", "cherry"}

for x in thisset:
    print(x)

# Output
banana
apple
cherry

نوشته‌ی حلقه‌ی For در پایتون را مطالعه کنید.
مثال زیر بررسی می‌کند که آیا کلمه banana در Set وجود دارد یا خیر.

# Input
thisset = {"apple", "banana", "cherry"}
print("banana" in thisset)

# Output
True

تغییر مقدار آیتم‌ها

پس از ایجاد Set نمی‌توانید آیتم‌های آن را تغییر دهید.

اضافه کردن آیتم

برای افزودن یک آیتم از متد add و برای افزودن بیش از یک آیتم از متد update استفاده می‌شود.
مثال زیر یک آیتم به Set اضافه می‌کند.

# Input
thisset = {"apple", "banana", "cherry"}
thisset.add("orange")
print(thisset)

# Output
{'apple', 'orange', 'cherry', 'banana'}

مثال زیر چند آیتم به Set اضافه می‌کند.

# Input
thisset = {"apple", "banana", "cherry"}
thisset.update(["orange", "mango", "grapes"])
print(thisset)

# Output
{'orange', 'cherry', 'apple', 'grapes', 'mango', 'banana'}

طول Set

برای تعیین تعداد آیتم‌ها در Set از تابع len استفاده کنید.
مثال زیر تعداد آیتم‌های Set را چاپ می‌کند.

# Input
thisset = {"apple", "banana", "cherry"}
print(len(thisset))

# Output
3

حذف آیتم

برای حذف آیتم از متدهای remove و discard استفاده می‌شود.
مثال زیر آیتم banana را با استفاده از متد remove حذف می‌کند.

# Input
thisset = {"apple", "banana", "cherry"}
thisset.remove("banana")
print(thisset)

# Output
{'apple', 'cherry'}

اگر آیتم مشخص شده برای حذف، وجود نداشته باشد متد remove یک خطا ایجاد می‌کند.
مثال زیر آیتم banana را با استفاده از متد discard حذف می‌کند.

# Input
thisset = {"apple", "banana", "cherry"}
thisset.discard("banana")
print(thisset)

# Output
{'apple', 'cherry'}

اگر آیتم مشخص شده برای حذف، وجود نداشته باشد متد discard خطا ایجاد نمی‌کند.
همچنین می‌توانید از متد pop برای حذف یک آیتم استفاده کنید. اما این متد آخرین آیتم را حذف می‌کند و از آنجایی که ست‌ها نامرتب هستند نمی‌دانید که کدام آیتم حذف می‌شود.
مثال زیر آخرین آیتم را با استفاده از متد pop حذف می‌کند.

# Input
thisset = {"apple", "banana", "cherry"}
x = thisset.pop()
print(x) # removed item
print(thisset) # the set after removal

# Output
apple
{'cherry', 'banana'}

مثال زیر Set را با استفاده از متد clear خالی می‌کند.

# Input
thisset = {"apple", "banana", "cherry"}
thisset.clear()
print(thisset)

# Output
set()

مثال زیر Set را به طور کامل با استفاده از کلمه‌کلیدی del حذف می‌کند.

# Input
thisset = {"apple", "banana", "cherry"}
del thisset
print(thisset) # this will raise an error because the set no longer exists

# Output
Traceback (most recent call last):
  File "demo_set_del.py", line 5, in <module>
    print(thisset) #this will raise an error because the set no longer exists
NameError: name 'thisset' is not defined

متصل کردن دو یا چند Set

چندین روش برای متصل کردن دو یا چند Set در پایتون وجود دارد.
می‌توانید از متد union استفاده کنید که Set جدیدی را برمی‌گرداند که شامل همه‌ی آیتم‌ها از هر دو یا چند Set است. یا با استفاده از متد update می‌توانید همه‌ی آیتم‌های یک Set را به Set دیگر وارد کنید.
مثال زیر با استفاده از متد union دو Set را بهم متصل می‌کند.

# Input
set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}
set3 = set1.union(set2)
print(set3)

# Output
{'a', 2, 'c', 'b', 3, 1}

مثال زیر با استفاده از متد update دو Set را بهم متصل می‌کند.

# Input
set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}
set1.update(set2)
print(set1)

# Output
{1, 'c', 'a', 3, 2, 'b'}

دقت داشته باشید هر دو متد union و update آیتم‌های تکراری را حذف نمی‌کنند.

تابع سازنده set

می‌توان از تابع سازنده set برای ساخت یک Set جدید استفاده کرد.

# Input
thisset = set(("apple", "banana", "cherry"))
print(thisset)
# Note: the set list is unordered, so the result will display the items in a random order.

# Output
{'banana', 'apple', 'cherry'}

منابع
w3schools.com – Python Sets
Photo by Danny Meneses from Pexels

نظر دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *