در پایتون، ساختار دادهها انواع متنوعی دارند که هر کدام برای کاربردهای خاصی مناسب هستند. برخی از ساختار دادههای مهم در پایتون به شرح زیر هستند:
لیست (List)
لیست یکی از سادهترین ساختارهای دادهای در پایتون است و میتواند شامل هر نوع دادهای باشد. با استفاده از عملگرهای اضافه کردن، حذف و تغییر محتوای لیست، میتوان آن را مدیریت کرد. لیست در پایتون به صورت دنبالهای از مقادیر قرار میگیرد که میتواند شامل هر نوع دادهای باشد. برای ایجاد یک لیست در پایتون، میتوانید از عملگر [] استفاده کنید که درون آن مقادیر لیست را قرار دهید. به عنوان مثال:
my_list = [1, 2, 3, 'four', 5.6]
در این مثال، یک لیست به نام "my_list" ایجاد شده است که شامل پنج عنصر است که شامل اعداد، رشته و عدد اعشاری هستند.
برای دسترسی به مقادیر لیست، میتوانید از شاخصهای آن استفاده کنید. شاخص اول لیست با شماره صفر شروع میشود و شاخص آخرین عنصر برابر با تعداد کل عناصر منهای یک است. به عنوان مثال، برای دسترسی به مقدار سوم لیست "my_list"، میتوانید از شاخص 2 استفاده کنید:
print(my_list[2]) # خروجی: 3
همچنین، میتوانید با استفاده از توابع مخصوص لیست، عملیاتهای متنوعی روی لیست انجام دهید. به عنوان مثال، تابع "append" برای اضافه کردن یک مقدار به انتهای لیست، و تابع "remove" برای حذف یک مقدار از لیست، مورد استفاده قرار میگیرند. به عنوان مثال:
my_list.append(6)
print(my_list) # خروجی: [1, 2, 3, 'four', 5.6, 6]
my_list.remove('four')
print(my_list) # خروجی: [1, 2, 3, 5.6, 6]
در این مثال، با استفاده از تابع "append" مقدار 6 به انتهای لیست اضافه شده است و با استفاده از تابع "remove" مقدار 'four' از لیست حذف شده است.
دیکشنری (Dictionary)
دیکشنری یک ساختار دادهای است که شامل یک سری کلید-مقدار است. هر کلید به یک مقدار مرتبط میشود و این ساختار دادهای برای ذخیرهسازی و دسترسی به دادههایی که با کلید شناخته میشوند، مناسب است. دیکشنری در پایتون با استفاده از زوجهای کلید-مقدار (key-value) پیادهسازی میشود.
برای ایجاد یک دیکشنری در پایتون، میتوانید از عملگر {} استفاده کنید و درون آن زوجهای کلید-مقدار را قرار دهید. به عنوان مثال:
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
در این مثال، یک دیکشنری به نام "my_dict" ایجاد شده است که شامل سه زوج کلید-مقدار است. کلید هر زوج، یک رشته است و مقدار مربوط به آن، میتواند هر نوع دادهای باشد.
برای دسترسی به مقدار مربوط به یک کلید در دیکشنری، میتوانید از نام کلید درون عملگر [] استفاده کنید. به عنوان مثال:
print(my_dict['name']) # خروجی: 'John'
همچنین، میتوانید با استفاده از توابع مخصوص دیکشنری، عملیاتهای متنوعی روی دیکشنری انجام دهید. به عنوان مثال، تابع "keys" برای بازگرداندن تمام کلیدهای دیکشنری، و تابع "values" برای بازگرداندن تمام مقادیر دیکشنری، مورد استفاده قرار میگیرند. به عنوان مثال:
print(my_dict.keys()) # خروجی: dict_keys(['name', 'age', 'city'])
print(my_dict.values()) # خروجی: dict_values(['John', 30, 'New York'])
در این مثال، تمام کلیدهای دیکشنری با استفاده از تابع "keys" و تمام مقادیر آن با استفاده از تابع "values" بازگردانده شدهاند.
تاپل (Tuple)
تاپل شبیه به لیست است، با این تفاوت که پس از تعریف، نمیتوان محتوای آن را تغییر داد. این ساختار دادهای برای ذخیرهسازی دادههایی که باید ثابت باشند، مناسب است. به بیان دقیقتر، تاپل (Tuple) همانند لیست یکی از ساختارهای دادهای در پایتون است، با این تفاوت که تاپل قابل تغییر نیست (immutable)، یعنی بعد از ایجاد آن نمیتوان مقادیر درون آن را تغییر داد. به عبارت دیگر، تاپل میتواند فقط خوانده شود و نه نوشته شود. برای ایجاد یک تاپل در پایتون، میتوانید از عملگر () استفاده کنید و درون آن مقادیر مورد نظر را قرار دهید. به عنوان مثال:
my_tuple = (1, 2, 'three', 4.0)
در این مثال، یک تاپل به نام "my_tuple" ایجاد شده است که شامل چهار مقدار است.
برای دسترسی به مقدارهای تاپل، میتوانید از شاخصهای آن استفاده کنید. شاخص اول تاپل با شماره صفر شروع میشود و شاخص آخرین عنصر برابر با تعداد کل عناصر منهای یک است. به عنوان مثال، برای دسترسی به مقدار سوم تاپل "my_tuple"، میتوانید از شاخص 2 استفاده کنید:
print(my_tuple[2]) # خروجی: 'three'
همچنین، میتوانید با استفاده از توابع مخصوص تاپل، عملیاتهای متنوعی روی تاپل انجام دهید. به عنوان مثال، تابع "count" برای شمارش تعداد یک مقدار در تاپل، و تابع "index" برای بازگرداندن شاخص یک مقدار در تاپل، مورد استفاده قرار میگیرند. به عنوان مثال:
my_tuple = (1, 2, 'three', 4.0, 'three')
print(my_tuple.count('three')) # خروجی: 2
print(my_tuple.index(4.0)) # خروجی: 3
در این مثال، با استفاده از تابع "count" تعداد مقادیر 'three' در تاپل شمارش شده و با استفاده از تابع "index" شاخص مربوط به مقدار 4.0 در تاپل بازگردانده شده است.
مجموعه (Set)
مجموعه شامل یک سری عناصر منحصر به فرد است که به صورت تصادفی در مجموعه قرار میگیرند. این ساختار دادهای برای عملیاتی مانند اجتماع، تفاضل و اشتراک مجموعهها، مناسب است. به بیان دیگر، مجموعه (Set) یک ساختار دادهای در پایتون است که مجموعهای از عناصر یکتا را نگهداری میکند، به عبارت دیگر هر عنصر تنها یک بار در مجموعه وجود دارد. مجموعه در پایتون با استفاده از عملگر {} و بدون تکرار مقادیر پیادهسازی میشود. برای ایجاد یک مجموعه در پایتون، میتوانید از عملگر {} استفاده کنید و درون آن مقادیر مورد نظر را قرار دهید. به عنوان مثال:
my_set = {1, 2, 'three', 4.0}
در این مثال، یک مجموعه به نام "my_set" ایجاد شده است که شامل چهار عنصر است. توجه کنید که عنصر 'three' یک بار در مجموعه وجود دارد. برای دسترسی به عناصر مجموعه، میتوانید از حلقه "for" استفاده کنید. به عنوان مثال:
for item in my_set:
print(item)
همچنین، میتوانید با استفاده از توابع مخصوص مجموعه، عملیاتهای متنوعی روی مجموعه انجام دهید. به عنوان مثال، تابع "add" برای اضافه کردن یک عنصر به مجموعه، و تابع "remove" برای حذف یک عنصر از مجموعه، مورد استفاده قرار میگیرند. به عنوان مثال:
my_set.add(5)
print(my_set) # خروجی: {1, 2, 4.0, 5, 'three'}
my_set.remove('three')
print(my_set) # خروجی: {1, 2, 4.0, 5}
در این مثال، با استفاده از تابع "add" عنصر 5 به مجموعه اضافه شده است و با استفاده از تابع "remove" عنصر 'three' از مجموعه حذف شده است.
صف (Queue)
صف یک ساختار دادهای است که برای ذخیرهسازی دادهها به صورت FIFO سرنام (First-In-First-Out)، مناسب است. این ساختار دادهای برای مسائلی مانند مدیریت پیامها و درخواستهای سیستمی مناسب است. صف (Queue) یک ساختار دادهای است که از آن برای ذخیره و مدیریت دنبالهای از عناصر استفاده میشود. یکی از استفادههای رایج صف، در الگوریتمهای نوبتبندی (scheduling) استفاده میشود. در پایتون، میتوانید از کلاس "Queue" در ماژول "queue" برای ساخت صف استفاده کنید.
برای ساخت یک صف در پایتون، ابتدا باید ماژول "queue" را به کد خود اضافه کنید. سپس میتوانید با استفاده از کلاس "Queue" یک صف ایجاد کنید. به عنوان مثال:
import queue
my_queue = queue.Queue()
در این مثال، یک صف به نام "my_queue" ایجاد شده است.
برای افزودن یک عنصر به صف، میتوانید از تابع "put" استفاده کنید. به عنوان مثال:
my_queue.put('first')
my_queue.put('second')
در این مثال، دو عنصر 'first' و 'second' به ترتیب به صف اضافه شدهاند. برای حذف یک عنصر از صف، میتوانید از تابع "get" استفاده کنید. به عنوان مثال:
print(my_queue.get()) # خروجی: 'first'
در این مثال، عنصر اول صف با استفاده از تابع "get" حذف و به عنوان خروجی چاپ شده است. همچنین، میتوانید با استفاده از تابع "empty" بررسی کنید که آیا صف خالی است یا خیر. به عنوان مثال:
print(my_queue.empty()) # خروجی: False
در این مثال، با استفاده از تابع "empty" بررسی شده است که صف "my_queue" خالی نیست.
پشته (Stack)
پشته شامل یک سری عنصر است که به صورت LIFO سرنام (Last-In-First-Out) در آن قرار میگیرند. این ساختار دادهای برای مسائل مانند مدیریت تاریخچه گامهایی که کاربر انجام داده است، مناسب است.
پشته یک ساختار داده است که از آن برای ذخیره و مدیریت دنبالهای از عناصر استفاده میشود. در پایتون، میتوانید از کلاس "Stack" در ماژول "collections" برای ساخت پشته استفاده کنید. برای ساخت یک پشته در پایتون، ابتدا باید ماژول "collections" را به کد خود اضافه کنید. سپس میتوانید با استفاده از کلاس "Stack" یک پشته ایجاد کنید. به عنوان مثال:
from collections import deque
my_stack = deque()
در این مثال، یک پشته به نام "my_stack" ایجاد شده است. برای افزودن یک عنصر به پشته، میتوانید از تابع "append" استفاده کنید. به عنوان مثال:
my_stack.append('first')
my_stack.append('second')
در این مثال، دو عنصر 'first' و 'second' به ترتیب به پشته اضافه شدهاند. برای حذف یک عنصر از پشته، میتوانید از تابع "pop" استفاده کنید. به عنوان مثال:
print(my_stack.pop()) # خروجی: 'second'
در این مثال، عنصر آخر پشته با استفاده از تابع "pop" حذف و به عنوان خروجی چاپ شده است. همچنین، میتوانید با استفاده از تابع "len" تعداد عناصر پشته را بدست آورید. به عنوان مثال:
print(len(my_stack)) # خروجی: 1
در این مثال، با استفاده از تابع "len" تعداد عناصر پشته "my_stack" محاسبه شده و به عنوان خروجی چاپ شده است.
از این ساختار دادهها در بسیاری از برنامههای پایتون استفاده میشود و به کاربران این امکان را میدهد که دادههای خود را به صورت مرتب و سازمانیافته ذخیره و مدیریت کنند.
چگونه ساختارهای داده را در پایتون پیاده سازی کنیم؟
برای پیادهسازی ساختار دادهها در پایتون، میتوانید از کلاسها استفاده کنید. در این روش، یک کلاس به عنوان ساختار دادهای ایجاد میشود و سپس اعضای آن کلاس به مانند اعضای ساختار دادهای مورد نظر شما، پیادهسازی میشوند. به عنوان مثال، پیادهسازی یک لیست به صورت زیر است:
class Node:
def __init__(self, data):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def add_node(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
else:
current_node = self.head
while current_node.next is not None:
current_node = current_node.next
current_node.next = new_node
در این مثال، یک کلاس به نام "Node" ایجاد شده است که شامل دو عضو "data" و "next" است. عضو "data" با مقدار دادهای که در آن ذخیره میشود، و عضو "next" با مقدار آدرس گره بعدی در لیست پیوندی مرتبط است. همچنین، یک کلاس به نام "LinkedList" ایجاد شده است که شامل عضو "head" است که به عنوان گره اول لیست پیوندی به کار میرود. عضو "add_node" به عنوان یک تابع برای اضافه کردن گره جدید به لیست پیوندی، پیادهسازی شده است.
برای استفاده از این ساختار دادهای، میتوانید یک شیء از کلاس "LinkedList" ایجاد کنید و سپس با استفاده از تابع "add_node"، گرههای جدید را به لیست پیوندی اضافه کنید:
linked_list = LinkedList()
linked_list.add_node(10)
linked_list.add_node(20)
linked_list.add_node(30)
در این مثال، یک شیء از کلاس "LinkedList" ایجاد شده است و سپس با استفاده از تابع "add_node"، گرههای با مقادیر 10، 20 و 30 به لیست پیوندی اضافه شدهاند.
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟