Set در پایتون چیست؟

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

یکی از ویژگی‌های مهم Set این است که عناصر تکراری را نگهداری نمی‌کند. همچنین Set برخلاف List و Tuple ترتیب مشخصی برای دسترسی با Index ندارد.

ساخت Set در پایتون

برای ساخت یک Set معمولاً عناصر را داخل { } قرار می‌دهیم.

numbers = {1, 2, 3, 4, 5}

print(numbers)

حذف عناصر تکراری

اگر یک مقدار را چند بار داخل Set قرار دهیم، مقدار تکراری فقط یک بار نگهداری می‌شود.

numbers = {1, 2, 2, 3, 3, 4}

print(numbers)

در نتیجه، Set فقط مقادیر یکتا را نگهداری می‌کند.

ساخت Set با set()

می‌توانیم با تابع set() نیز یک مجموعه بسازیم.

numbers = set([1, 2, 3, 4])

print(numbers)

Set خالی

برای ساخت یک Set خالی باید از set() استفاده کنیم.

numbers = set()

print(numbers)

توجه کنید که {} یک Dictionary خالی می‌سازد، نه Set.

اضافه کردن عنصر با add()

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

numbers = {1, 2, 3}

numbers.add(4)

print(numbers)

حذف عنصر با remove()

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

numbers = {1, 2, 3, 4}

numbers.remove(3)

print(numbers)

اگر عنصر موردنظر در Set وجود نداشته باشد، remove() خطا ایجاد می‌کند.

حذف عنصر با discard()

روش دیگری برای حذف عنصر استفاده از discard() است.

numbers = {1, 2, 3, 4}

numbers.discard(3)

print(numbers)

تفاوت مهم این دو متد این است که اگر عنصر وجود نداشته باشد، discard() خطا ایجاد نمی‌کند.

بررسی وجود عنصر با in

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

numbers = {1, 2, 3, 4}

print(3 in numbers)
print(10 in numbers)

خروجی:

True
False

حلقه for در Set

می‌توانیم با استفاده از حلقه for روی عناصر Set حرکت کنیم.

numbers = {1, 2, 3, 4}

for number in numbers:
    print(number)

اتحاد دو Set با union()

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

set1 = {1, 2, 3}
set2 = {3, 4, 5}

result = set1.union(set2)

print(result)

مقدارهای تکراری در نتیجه فقط یک بار قرار می‌گیرند.

اشتراک دو Set با intersection()

متد intersection() عناصر مشترک بین دو مجموعه را برمی‌گرداند.

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}

result = set1.intersection(set2)

print(result)

نتیجه:

{3, 4}

تفاوت دو Set با difference()

با difference() می‌توانیم عناصری را پیدا کنیم که در مجموعه اول وجود دارند، اما در مجموعه دوم وجود ندارند.

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}

result = set1.difference(set2)

print(result)

نتیجه:

{1, 2}

عملگرهای مهم Set

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

set1 = {1, 2, 3}
set2 = {3, 4, 5}

print(set1 | set2)
print(set1 & set2)
print(set1 - set2)

در این مثال:

تعداد عناصر Set با len()

numbers = {10, 20, 30, 40}

print(len(numbers))

خروجی:

4

تفاوت Set با List و Tuple

نوع داده نماد ترتیب مقادیر تکراری قابل تغییر
List [] دارد بله بله
Tuple () دارد بله خیر
Set {} برای Index استفاده نمی‌شود خیر بله

یک مثال کاربردی

فرض کنید یک فروشگاه فهرستی از کدهای محصول را دریافت کرده است و بعضی کدها چند بار تکرار شده‌اند. می‌توانیم با Set مقادیر تکراری را حذف کنیم.

product_codes = [
    "A101",
    "A102",
    "A101",
    "A103",
    "A102"
]

unique_codes = set(product_codes)

print(unique_codes)

در این مثال، Set باعث می‌شود هر کد محصول فقط یک بار باقی بماند.

خلاصه دستورات مهم Set

دستور کاربرد
set() ساخت Set
add() اضافه کردن عنصر
remove() حذف عنصر
discard() حذف عنصر بدون ایجاد خطا در صورت نبودن عنصر
union() اتحاد دو مجموعه
intersection() عناصر مشترک
difference() تفاوت دو مجموعه
len() تعداد عناصر
in بررسی وجود عنصر

سوالات متداول

Set در پایتون چیست؟

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

آیا Set مقدار تکراری دارد؟

خیر. Set عناصر تکراری را نگهداری نمی‌کند.

آیا می‌توان با Index به عناصر Set دسترسی داشت؟

خیر. Set برای دسترسی به عناصر با Index طراحی نشده است.

تفاوت remove() و discard() چیست؟

اگر عنصر موردنظر وجود نداشته باشد، remove() خطا ایجاد می‌کند، اما discard() خطا ایجاد نمی‌کند.

Set چه کاربردی دارد؟

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

جمع‌بندی

Set یکی از ساختارهای داده کاربردی در پایتون است که برای نگهداری عناصر یکتا استفاده می‌شود.

در این درس با ساخت Set، اضافه و حذف کردن عناصر و عملیات مهمی مانند union، intersection و difference آشنا شدیم.

← درس قبلی: دیکشنری در پایتون بازگشت به آموزش پایتون درس بعدی: توابع در پایتون →