۵ عملیات بر روی مجموعه‌های پایتون که باید بدانید

شکل۱. مجموعه‌ها در ساختار داده پایتون
شکل۱. مجموعه‌ها در ساختار داده پایتون
منتشر‌شده در: towardsdatascience
لینک منبع: Must-Know Operations on Python Sets ۵

ساختارهای داده، بلوک‌های سازنده کدنوشته‌های پایتون هستند. آن‌ها داده‌ها را به شیوه‌ای خاص نگه می‌دارند یا در بر می‌گیرند تا کاری کنند که اسناد موثرتر عمل کنند. بنابراین، مهم است که یاد بگیریم چگونه با ساختارهای داده تعامل داشته باشیم.

مجموعه‌ها یکی از ساختارهای اصلی داده در پایتون هستند. یک مجموعه مجموعه‌ای از موارد با ویژگی‌های زیر است:

  • صفحات سفارش داده نشده‌اند
  • صفحات حاوی عناصر متمایز هستند
  • عناصر یک مجموعه باید تغییر ناپذیر باشند

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

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

mylist = ['A', 'A', 'B', 'A', 'C', 'B']
myset = set(mylist)print(myset)
{'A', 'B', 'C'}

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

import numpy as np
a = np.random.randint(0, 5, size=20)
myset = set(a)print(a)
[4 0 4 3 1 1 3 0 0 1 3 4 0 3 2 4 1 4 3 3]print(myset)
{0, 1, 2, 3, 4}

۱. اضافه کردن و حذف عناصر

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

myset.add(5)print(myset)
{0, 1, 2, 3, 4, 5}

اگر سعی کنیم عنصری را که در حال حاضر در مجموعه قرار دارد اضافه کنیم، مجموعه یکسان باقی خواهد ماند و هشدار یا خطایی دریافت نخواهیم کرد.

myset.add(4)print(myset)
{0, 1, 2, 3, 4, 5}

استفاده از روش حذف نیز به همین صورت است.

myset.remove(4)print(myset)
{0, 1, 2, 3, 5}

مطالعه مقاله برنامه‌نویسی R در مقابل پایتون: مبتدیان باید چه چیزی یاد بگیرند؟ توصیه می‌شود.

۲. به‌روزرسانی یک مجموعه

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

myset = set([0, 1, 2, 3, 5])myotherset = set([3, 4, 5, 6, 7])

می‌توانیم مجموعه «myset» را به صورت زیر به‌روزرسانی کنیم:

myset.update(myotherset)print(myset)
{0, 1, 2, 3, 4, 5, 6, 7}

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

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

myset = set([0, 1, 2, 3, 5])
mylist = [1, 2, 10,11,12]
myset.update(mylist)print(myset)
{0, 1, 2, 3, 5, 10, 11, 12}

۳. ترکیب مجموعه‌ها

روش به‌روزرسانی در محل کار می‌کند به این معنی که مجموعه اصلی را تغییر می‌دهد. در برخی موارد، ما به ترکیبی از چندین مجموعه بدون به‌روزرسانی مجموعه اصلی نیاز داریم. روش union ترکیبی از دو مجموعه را برمی گرداند تا بتوانیم آن را به یک متغیر جدید اختصاص دهیم.

myset = {'A', 'B', 'C'}
newset = {'B', 'C', 'D', 'E'}
newset2 = {1, 2, 3}combinedset = myset.union(newset).union(newset2)print(myset)
{'A', 'B', 'C'}print(combinedset)
{'A', 1, 2, 'D', 'E', 3, 'B', 'C'}

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

در مثال بالا، ما همچنین روش متفاوتی برای ایجاد یک مجموعه دیده‌ایم. برای ایجاد مجموعه می‌توان عناصر را از داخل آکولادها («{ }») عبور داد.

ممکن است علاقه‌مند به مطالعه چگونه در پایتونLoops را به لیست‌های مفهومی تبدیل کنیم؟ باشید.

۴. مقایسه مجموعه‌ها

دو مجموعه را می توان از نظر عناصری که در بر دارند مقایسه کرد.

برای مقایسه دو مجموعه می توان از روشIssuperset و Issubset استفاده کرد.

در نظر بگیرید که دو مجموعه داریم به نام‌های A و B اگر A شامل تمام عناصر در B باشد، آنگاه A یک ابر مجموعه B است. در این حالت، B زیر مجموعه‌ای از A است.

A = {1, 2, 3, 4, 5}
B = {1, 4, 5}
C = {1, 4, 6}A.issuperset(B)
TrueB.issubset(A)
TrueA.issuperset(C)
False

یکی از عناصر موجودد در مجموعه C در مجموعه A نیست. بنابراین A یک ابر مجموعه از C نیست.

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

D = {1, 4, 5}E = {1, 4, 5}D.issuperset(E)
TrueD.issubset(E)
True

۵. تقاطع و تفاوت

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

ممکن است به عناصری که در یک مجموعه هستند اما نه در مجموعه دیگر علاقه‌مند باشیم. به طور مشابه، ممکن است نیاز به پیدا کردن عناصری که در هر دو مجموعه هستند داشته باشیم. روش‌های اختلاف و تقاطع را می توان به ترتیب برای انجام این عملیات استفاده کرد.

A = {1, 2, 3, 4, 5}
B = {3, 4, 5, 6, 7, 8}A.difference(B)
{1, 2}A.intersection(B)
{3, 4, 5}B.difference(A)
{6, 7, 8}

ترتیب مجموعه‌ها هنگام پیدا کردن تقاطع مهم نیست. با این حال، تفاوت براساس ترتیب محاسبه می‌شود. تفاوت A از B شامل عناصری است که در A هستند اما در B نیستند و برعکس.

نتیجه‌گیری

ما مثال‌هایی را برای نشان دادن ۵ عملیات معمول اجرا شده بر روی مجموعه‌ها انجام داده‌ایم. روش‌های بیشتری وجود دارند که می‌توانند به مجموعه‌ها اعمال شوند. با این حال، آنچه ما در این مقاله پوشش داده‌ایم برای اکثر موارد کافی است.

ممنون که مطالعه کردید.

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