تا به حال، ما اطلاعات را به صورت تکی در متغیرها ذخیره میکردیم. اما اگر بخواهیم مجموعهای از اطلاعات را با هم ذخیره کنیم، چه؟ مثلاً نام ده دانشآموز یا لیست قیمت محصولات؟
لیستها (Lists) و تاپلها (Tuples) دو نوع از پرکاربردترین ساختارهای داده در پایتون هستند که برای این کار استفاده میشوند.
بخش ۱: لیستها (Lists)
لیستها مجموعهای از آیتمها هستند که با کاما از هم جدا شدهاند و داخل براکت [] قرار میگیرند. ویژگی اصلی لیستها این است که قابل تغییر (mutable) هستند. این یعنی میتوانید آیتمهای آنها را اضافه، حذف یا ویرایش کنید.
تعریف یک لیست:
fruits = [“apple”, “banana”, “cherry”]
prices = [10, 25, 45, 12]
دسترسی به آیتمها: به هر آیتم در یک لیست با استفاده از ایندکس (Index) آن دسترسی پیدا میکنیم. ایندکسها از ۰ شروع میشوند.
fruits = [“apple”, “banana”, “cherry”]
print(fruits[0])
خروجی: apple#
print(fruits[2])
خروجی: cherry#
تغییر آیتمها:
fruits = [“apple”, “banana”, “cherry”]
“fruits[1] = “kiwi
print(fruits)
خروجی: [‘apple’, ‘kiwi’, ‘cherry’]#
بخش ۲: تاپلها (Tuples)
تاپلها شبیه به لیستها هستند، اما با استفاده از پرانتز () تعریف میشوند و مهمترین تفاوت آنها این است که غیرقابل تغییر (immutable) هستند. یعنی بعد از تعریف، نمیتوانید آیتمهای آنها را تغییر دهید، اضافه یا حذف کنید.
تعریف یک تاپل:
colors = (“red”, “green”, “blue”)
دسترسی به آیتمها: دسترسی به آیتمها در تاپل نیز با ایندکس انجام میشود، دقیقاً مثل لیستها.
colors = (“red”, “green”, “blue”)
print(colors[1])
خروجی: green #
نکته: اگر بخواهید آیتمی از یک تاپل را تغییر دهید، با خطا مواجه خواهید شد.
colors = (“red”, “green”, “blue”)
“colors[0] = “yellow#
این خط باعث خطا میشود#
تکلیف این درس
یک فایل جدید به نام data_structures.py ایجاد کنید و تمرینهای زیر را انجام دهید:
- یک لیست به نام my_favorites با سه مورد دلخواه (مثلاً نام فیلم، کتاب یا خوراکی) ایجاد کنید. سپس آیتم دوم لیست را با یک مورد جدید جایگزین کرده و در نهایت لیست را چاپ کنید.
- یک تاپل به نام my_birthdate ایجاد کنید که شامل سه عدد (سال، ماه و روز تولد) باشد. سعی کنید آیتم اول تاپل (سال) را تغییر دهید و ببینید پایتون چه خطایی به شما میدهد. این خطا را با یک علامت # در کدتان کامنت کنید.
با انجام این تمرین، شما تفاوت کلیدی بین لیستها و تاپلها را به صورت عملی درک خواهید کرد. این مبحث، پایهای برای یادگیری ساختارهای داده پیچیدهتر در آینده است.
تا اینجا پیشرفت شما فوقالعاده بوده است. در درس بعدی، ما با جزئیات بیشتری از لیستها و متدهای آنها آشنا خواهیم شد.