دیدیم که set ها جلوی تکرار مقادیر را میگیرند، دیکشنری ها بهترین ساختار برای داده های جدولی ساده هستند و لیست ها میتوانند داده ها را به ترتیب دلخواه ما در خود ذخیره کنند.

به دیکشنری ها نوع mapping و به لیست ها نوع sequence گفته می شود اما در مورد set ها مسئله متفاوت است. set ها نوع دیگری از المان ها هستند.

در بخش های بعدی بیشتر با ویژگی های کلیدی این المان ها آشنا می شویم و استفاده ی درست از آنها را بهتر می آموزیم.

انتخاب ساختار مناسب

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

زمانی که میخواهیم نوع collection ذخیره سازی را انتخاب کنیم، باید ویژگی های کلیدی انواع مختلف را بدانیم و با مزایا و معایب آنها آشنا باشیم. برای مثال زمانی از لیست ها استفاده میکنیم که میخواهیم علاوه بر ذخیره کردن اطلاعات ترتیب و روند اطلاعات را هم کنترل کنیم تا یک روند( sequence ) را حفظ کنیم، یک دیکشنری زمانی برای ما کاربردی است که بخواهیم کلید های یکتا را به مقادیر مختلفی مرتبط( mappings ) کنیم. تاپل ها غیر قابل تغییر هستند و المان های داخلی ست ها یکتاست و المان تکراری در ست ها وجود ندارد.

انتخاب درست ساختار داده میتواند بازدهی شما در برنامه نویسی و بازدهی برنامه را بهتر کند.

انتخاب نادرست ساختار داده نیز میتواند منجر به کاهش بازدهی برنامه ی شما و از دست دادن داده های ارزشمند شود.

جدول زیر برای انتخاب درست ساختار مناسب به شما کمک میکند اما به مفاهیم Big(O) که در فصل های آینده می آموزیم و یادگیری ساختار داده ی پیشرفته در فصل آخر نیاز خواهید داشت.


عبارت hashable به معنای این است که دیتا در آدرس مشخصی از حافظه دارای کلید است(مانند index در رشته ها و لیست ها و تاپل ها)

ساختار داده ی Frozenset مشابه ست ها هستند اما مانند تاپل ها غیر قابل تغییر هستند و المان های آنها آدرس مشخصی در حافظه دارند.