برنامه نویسیپایتون

انواع ساختار داده در پایتون (Data Types)

ساختار داده در پایتون چیست؟

ساختار داده در پایتون و حتی سایر زبان های برنامه نویسی برای ذخیره و سازماندهی داده ها هستند که کار پیمایش و دسترسی به اطلاعات را آسان تر می کنند. ساختارهای داده نحوه جمع آوری داده ها و عملکردی را که می توانیم رو داده پیاده سازی کنیم و روابط بین داده ها را تعیین می کند. این ویژگی تقریباً در همه زمینه های علوم و مهندسی کامپیوتر ، از سیستم عامل ها ، front-end development تا یادگیری ماشین مورد استفاده قرار می گیرند.

ساختار داده ها چه کمکی به ما میکنند؟

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

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

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

پایتون دارای 4 ساختار داده داخلی lists ، dictionaries ، tuples و sets است. این ساختارهای داده داخلی با روش های پیش فرض و بهینه سازی شده امکاناتی را ارائه می دهند که استفاده از آنها را آسان می کند.

  1. List: به شما این امکان را می دهد که چند object را در یک متغییر ذخیره کنید.
  2. Tuple: تاپل ها لیست های غیرقابل تغییر هستند ، به این معنی که عناصر قابل تغییر نیستند.
  3. Set: ترتیب عنصرها در مجموعه (Set) مهم نیست (عنصرها بدون ترتیب هستند) و متغییر های تکراری را ذخیره نمی کند.
  4. Dictionary (dict): شبیه جداول hashmap یا hash در زبانهای دیگر ، dict مجموعه ای از جفت کلید / مقدار است.

آرایه ها (لیست ها)

پایتون آرایه ای داخلی ندارد ، اما برای این کار می توانید از لیست استفاده کنید. هر مقدار در آرایه “عنصر” نامیده می شود. با فراخوانی نام آرایه با فهرست عنصر مورد نظر ، می توانید به عناصر خاص دسترسی پیدا کنید. با استفاده از روش len () می توانید طول یک آرایه را نیز بدست آورید.

انواع ساختار داده در پایتون (Data Types)

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

به عنوان مثال ، ما می توانیم از روش append () یک عنصر اضافی را در انتهای آرایه موجود اضافه کنیم.

maps = ["Iran", "Germany", "China"]

print(len(maps))

maps.append("Usa")

maps.pop(1)

for x in maps:

  print(x)

تقریباً همه موارد مربوط به نمایه سازی رشته برای لیست ها به همین ترتیب کار می کنند. به عنوان مثال ، یک فهرست منفی از انتهای لیست شمارش می شود:

انواع ساختار داده در پایتون (Data Types)

تاپل (tuple)

تاپل ها از همه لحاظ با لیست ها یکسان هستند ، به جز خصوصیات زیر:

  • تاپل ها با قرار دادن پرانتز () به جای براکت [] تعریف می شوند.
  • تاپل ها تغییرناپذیر هستند.

به مثال زیر دقت کنید:

>>> k = ('yousef', 'narges', 'ali', 'reza', 'ziba', 'zahra')

>>> k

('yousef', 'narges', 'ali', 'reza', 'ziba', 'zahra')

>>> k[0]

'yousef'

>>> t[-1]

'zahra'

>>> t[1::2]

('narges', 'reza', 'zahra')

مکانیسم معکوس لیست نیز برای تاپل ها نیز برقرار است:

>>> k[::-1]

('zahra', 'ziba', 'reza', 'ali', 'narges', 'yousef')

چرا به جای لیست از تاپل استفاده کنیم؟

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

مجموعه ها (Set)

مجموعه ها در پایتون دارای مشخصات زیر هستند:

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

یک مجموعه را می توان به دو روش ایجاد کرد. ابتدا می توانید مجموعه ای را با عملکرد set() تعریف کنید:

x = set(<iter>)

x = set(['yousef', 'narges', 'ali', 'reza', 'ziba'])

x = set(('yousef', 'narges', 'ali', 'reza', 'ziba'))

دیکشنری (Dictionarys)

دیکشنری ها به طور کلی به عنوان یک آرایه شناخته می شوند که از مجموعه ای از مقدار و کلید تشکیل شده اند. هر جفت کلید مقدار مربوط به آن را نشان می دهد.

d = {    
    <key>: <value>,    
    <key>: <value>,
    <key>: <value>
}

در زیر یک دیکشنری تعریف می شود که برای معرفی اشخاص به همراه شغل های خود هستند.

MLB_team = {
    'yousef' : 'Engineer',
    'narges'   : 'Developer',
    'alireza': 'Programmer',
    'vahid': 'Designer',
    'hassan'  : 'Engineer'
}

پشته ها (Stacks)

پشته ها یک ساختار داده ای پی در پی هستند که به عنوان آخرین صف (LIFO) عمل می کنند. آخرین عنصر وارد شده در یک پشته در بالای Stacks در نظر گرفته شده و تنها عنصر قابل دسترسی است. برای دسترسی به یک عنصر میانی ، ابتدا باید عناصر کافی را حذف کنید تا عنصر مورد نظر را در بالای پشته قرار دهید. بسیاری از توسعه دهندگان Stacks ها را به عنوان دسته بشقاب های شام تصور می کنند. می توانید صفحات را به بالای پشته اضافه یا حذف کنید اما باید کل Stacks را حرکت دهید تا یکی در پایین قرار گیرد. برنامه های کاربردی:

  • برای ساخت سیستم های بسیار واکنش پذیر استفاده می شود
  • سیستم های مدیریت حافظه ابتدا از Stacks ها برای رسیدگی به آخرین درخواست ها استفاده می کنند.

انواع ساختار داده در پایتون (Data Types)

درخت ها (Trees)

Trees یکی دیگر از ساختارهای داده ای مبتنی بر رابطه است که در نمایش ساختارهای داده تخصص دارد. مانند یک لیست پیوندی ، آنها با اشیا گره ها(Node) پر شده اند که حاوی مقدار داده و یک یا چند نشانگر هستند تا ارتباط آن را با گره های (Node) فوری تعریف کنند.

انواع ساختار داده در پایتون (Data Types)

متداول ترین کاربرد درخت باینری جستجوی باینری است. درختان جستجوی دودویی در جستجوی مجموعه های بزرگی از داده ها سرآمد هستند ، زیرا پیچیدگی زمان به عمق درخت بستگی دارد تا تعداد گره ها.

  • برای ذخیره داده های سلسله مراتبی مانند مکان فایل بسیار مناسب است.
  • برای پیاده سازی الگوریتم های جستجو و مرتب سازی برتر مانند درختان جستجوی دودویی استفاده می شود.

گراف ها (Graphs)

نمودارها یا گراف ها یک ساختار داده ای هستند که برای نشان دادن تصویری از روابط بین راس داده ها (گره های نمودار) استفاده می شود. به پیوندهایی که رئوس را بهم متصل می کنند ، لبه می گویند. لبه ها مشخص می کنند که کدام رئوس به هم متصل شده اند اما جریان جهت بین آنها را نشان نمی دهد. هر راس به راس های دیگری ارتباط دارد که هر راس به عنوان یک لیست جدا شده با کاما ذخیره می شود.

انواع ساختار داده در پایتون (Data Types)

# Create the dictionary with graph elements

graph = { "a" : ["b","c"],
          "b" : ["a", "d"],
          "c" : ["a", "d"],
          "d" : ["e"],
          "e" : ["d"]
 }
# Print the graph          
print(graph)

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

بیشتر بخوانید: آموزش کتابخانه os در پایتون

علی پازکی

علاقه مند به برنامه نویسی ، علم امنیت و همچنین مسائل علمی ? همیشه درحال یادگیری♾

دیدگاهتان را بنویسید

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

دکمه بازگشت به بالا