تور آموزشی

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

مجموعه Set

مجموعه یا set یکی انواع داده برای ذخیره عناصر مختلف در یک متغیر است. انواع داده دیگر برای این کار لیست، چندتایی یا تاپل و دیکشنری هستند. هرکدام از موارد اشاره شده ویژگی و کاربرد خودشان را دارند. مجموعه در پایتون با کاراکتر آکولاد {} تعریف می‌شود.

مجموعه در پایتون شباهت زیادی به مفهوم مجموعه در ریاضی دارد. مجموعه‌ها عضو تکراری نمی‌پذیرند. همین‌طور ترتیب هم ندارند. بنابراین با اندیس نمی‌توان به عناصر آنها دسترسی داشت.

مثال:

x = {1, 2, 3, 1}
print(x)

خروجی:

{1, 2, 3}

همانند لیست و چندتایی، مجموعه هم می‌تواند اعضایی با نوع داده متفاوت داشته باشد.

مثال:

x = {1, “salam”, None}

هنگام کار کردن با مجموعه باید دقت کرد که True و عدد 1 دارای یک مقدار هستند. همین‌طور False و عدد صفر.

مثال:

x = {1, True, 3}
y = {False, 0}
print(x)
print(y)
print(“len x: {}, len y: {}”.format(len(x), len(y)))

خروجی:

{1, 3}
{0}
len x: 2, len y: 1

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

برای دسترسی به عناصر یک مجموعه نمی‌توانیم مانند لیست یا تاپل از اندیس استفاده کنیم یا مانند دیکشنری از کلید (key) استفاده کنیم. برای این کار باید از حلقه‌های تکرار استفاده کنیم.

مثال:

fruits = {“apple”, “cherry”, “strawberry”}
for fruit in fruits:
    print(fruit)

خروجی:

apple
cherry
strawberry

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

مثال:

fruits = {“apple”, “cherry”, “strawberry”}
print(“orange” in fruits)

خروجی:

False

بروزرسانی مجموعه

عناصر یک مجموعه را نمی‌توان ویرایش کرد. البته می‌توان به یک مجموعه عنصر اضافه کرد و یا از عناصر آن حذف کرد.

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

مثال:

fruits = {“apple”, “cherry”, “strawberry”}
fruits.add(“orange”)
print(fruits)

خروجی:

{“cherry”, “orange”, “apple”, “strawberry”}

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

مثال:

alphabets = {‘a’, ‘b’, ‘c’}
numbers = {1, 2, 3}
alphabets.update(numbers)
print(alphabets)

خروجی:

{‘b’, ‘c’, 1, 2, 3, ‘a’}

البته با متد update هر شیء قابل پیمایش (لیست، تاپل، دیکشنری و ...) را می‌توان به یک مجموعه اضافه کرد.

در مثال قبل:

extra_numbers = [4, 5]
numbers.update(extra_numbers)
print(numbers)

خروجی:

{1, 2, 3, 4, 5}

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

مثال:

x = {1, 2}
y = {3, 4}
z = x.union(y)
print(x)
pritn(y)
print(z)

خروجی:

{1, 2}
{3, 4}
{1, 2, 3, 4}

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

مثال:

x = {1, 2, 3, 4}
x.remove(3)
print(x)
x.discart(1)
print(x)

خروجی:

{1, 2, 4}
{2, 4}

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

مثال:

x = {6, 5, 1, 3}
z = x.pop()
print(z)
print(x)

خروجی:

1
{3, 5, 6}

با متد clear می‌توان همه اعضای یک مجموعه را حذف کرد و مجموعه به عنوان یک مجموعه خالی باقی می‌ماند. با کلمه کلیدی del می‌توان یک مجموعه را به صورت کامل حذف کرد.

مثال:

x = {1, 2, 3}
x.clear()
print(x)
del x
print(x)

خروجی:

set()
NameError: name 'x' is not defined