خانه / درس ۳ مقدماتی: دادهساختارها – لیست، تاپل و دیکشنری در پایتون درس ۳ مقدماتی: دادهساختارها – لیست، تاپل و دیکشنری در پایتون 📅 ۱۴۰۴/۰۸/۱۰ ✍️ سجاد ⌛ 5 دقیقه مطالعه 👁️ 18 پایتون | Python مقدماتی 🗨️ 🤍 0 📤 0% ‹ بستن لیست دروس بازکردن لیست دروس پایتون | Python مقدماتی ▾ تا حالا فقط با یه داده کار کردیم، اما چی میشه اگه بخوای صدها داده رو مدیریت کنی؟ 📦 برای مثال، لیست خرید، نمرات دانشجوها یا اطلاعات یه کاربر رو تصور کن. تو این درس، با دادهساختارهای مهم پایتون (لیست، تاپل و دیکشنری) آشنا میشی که بهت اجازه میدن دادهها رو ذخیره، تغییر و مدیریت کنی. بنابراین، اگر درسهای ۱ و ۲ (متغیرها، شرطها و حلقهها) رو یاد گرفتی، حالا آمادهای که برنامههات رو حرفهایتر کنی! 🚀 با مثالهای واقعی، جداول مقایسه، ۱۲ تمرین و یه پروژه جذاب، این درس تو رو برای ساخت برنامههای پیچیدهتر آماده میکنه. بریم دادهها رو فتح کنیم! 🎉 لیستها: جعبههای انعطافپذیر 📋 لیستها با [] تعریف میشن و میتونی هر نوع دادهای رو توشون ذخیره کنی. برای مثال، یه لیست میتونه اعداد، متن یا حتی لیستهای دیگه رو نگه داره: کپیnumbers = [1, 2, 3, 4] names = ["علی", "مریم", "رضا"] mixed = [1, "سلام", True] print(names[0]) # خروجی: علی علاوه بر این، لیستها قابل تغییرن، یعنی میتونی محتواشون رو عوض کنی. عملیات مهم: append(item): اضافه کردن به انتها insert(index, item): اضافه کردن در موقعیت خاص remove(item): حذف اولین مورد pop(index): حذف با اندیس به عنوان مثال: کپیnames = ["علی", "مریم"] names.append("رضا") # اضافه به انتها names.insert(1, "سارا") # اضافه در اندیس ۱ names.remove("مریم") # حذف مریم print(names) # ['علی', 'سارا', 'رضا'] به علاوه، میتونی با len() طول لیست و با اسلایس ([start:end]) بخشی از لیست رو بگیری: کپیprint(len(names)) # 3 print(names[1:3]) # ['سارا', 'رضا'] 💡 نکته: اندیس از ۰ شروع میشه. بنابراین، names[0] اولین عنصر رو برمیگردونه. تاپلها: جعبههای قفلشده 🔒 تاپلها با () تعریف میشن و غیرقابل تغییرن. برای مثال، برای دادههایی که نباید عوض بشن (مثل مختصات) عالیان: کپیpoint = (10, 20) print(point[0]) # 10 # point[0] = 5 # خطا! تاپل غیرقابل تغییره به همین دلیل، تاپلها سریعتر از لیستها هستن و برای دادههای ثابت استفاده میشن. به عنوان مثال: کپیcolors = ("قرمز", "آبی", "سبز") print(len(colors)) # 3 print(colors[1:]) # ('آبی', 'سبز') 💡 نکته: اگر بخوای تاپل رو تغییر بدی، باید به لیست تبدیلش کنی: list(colors). دیکشنریها: کلید و مقدار 🗂️ دیکشنریها با {} تعریف میشن و دادهها رو به صورت کلید-مقدار ذخیره میکنن. برای مثال، اطلاعات یه نفر: کپیperson = {"name": "علی", "age": 25, "city": "تهران"} print(person["name"]) # علی person["job"] = "برنامهنویس" # اضافه print(person) # {'name': 'علی', 'age': 25, 'city': 'تهران', 'job': 'برنامهنویس'} علاوه بر این، میتونی کلیدها یا مقادیر رو جدا کنی: کپیprint(person.keys()) # dict_keys(['name', 'age', 'city', 'job']) print(person.values()) # dict_values(['علی', ۲۵, 'تهران', 'برنامهنویس']) 💡 نکته: کلیدها باید منحصربهفرد باشن، وگرنه مقدار جدید جایگزین قبلی میشه. حلقه روی دادهساختارها 🔄 برای مثال، میتونی با حلقه for (درس ۲) روی لیست، تاپل یا دیکشنری بگردی: کپیnumbers = [1, 2, 3] for num in numbers: print(num) # 1, 2, 3 به علاوه، برای دیکشنری از items() استفاده کن: کپیfor key, value in person.items(): print(f"{key}: {value}") به عنوان مثال، روی تاپل: کپیfor color in ("قرمز", "آبی"): print(color) 💡 نکته: حلقهها دادهساختارها رو قویتر میکنن. بنابراین، همیشه ترکیبشون با شرطها (درس ۲) رو تست کن. مقایسه دادهساختارها: کدوم رو انتخاب کنی؟ 📊 برای مثال، این جدول بهت کمک میکنه بهترین دادهساختار رو انتخاب کنی: دادهساختار قابل تغییر اندیس/کلید کاربرد لیست [] بله اندیس (۰ به بعد) دادههای متغیر مثل لیست خرید تاپل () خیر اندیس (۰ به بعد) دادههای ثابت مثل مختصات دیکشنری {} بله کلید (منحصربهفرد) جستجوی سریع مثل اطلاعات کاربر بنابراین، برای دادههای قابل تغییر لیست، برای ثابت تاپل، و برای کلید-مقدار دیکشنری رو انتخاب کن. مثالهای عملی: دنیای واقعی 💡 برای مثال، بیایم چند برنامه کاربردی بسازیم: ۱. میانگین نمرات: کپیgrades = [18, 15, 20, 17] average = sum(grades) / len(grades) print(f"میانگین: {average:.1f}") ۲. مدیریت لیست خرید: کپیshopping = ["شیر", "نان", "تخممرغ"] shopping.append(input("یه مورد اضافه کن: ")) print("لیست خرید:", shopping) ۳. اطلاعات دانشآموز: کپیstudents = {"علی": 18, "مریم": 19} name = input("اسم دانشآموز: ") if name in students: print(f"نمره {name}: {students[name]}") else: print("دانشآموز پیدا نشد!") به همین دلیل، این مثالها درسهای ۱ و ۲ رو با دادهساختارها ترکیب میکنن. کدها رو توی lesson3_examples.py ذخیره کن. خطاهای رایج و راهحلها ⚠️ به طور کلی، این خطاها تو دادهساختارها شایعن: خطا علت راهحل IndexError اندیس خارج از محدوده len() رو چک کن KeyError کلید وجود نداره با in وجود کلید رو چک کن TypeError عملیات روی نوع نادرست نوع داده رو با type() چک کن برای مثال: کپیlst = [1, 2] print(lst[5]) # خطا: IndexError # حل: if len(lst) > 5: print(lst[5]) else: print("اندیس نامعتبر!") تمرینها: مهارتت رو تست کن! 📝 برای تسلط، این ۱۲ تمرین رو حل کن: مجموع اعداد یه لیست رو حساب کن. بزرگترین عدد در یه لیست رو پیدا کن. اعداد زوج یه لیست رو چاپ کن. یه دیکشنری رو معکوس کن (کلیدها بشن مقدار و برعکس). یه لیست رو مرتب کن (با sort()). تعداد تکرار یه کلمه در لیست رو بشمار. یه تاپل از ۳ عدد بساز و مجموعشون رو چاپ کن. دیکشنری دانشآموزان (اسم و نمره) بساز و نمره یه نفر رو چاپ کن. لیست خرید با امکان اضافه و حذف. بررسی وجود یه عدد در لیست. لیست رو به دو لیست زوج و فرد تقسیم کن. یه دیکشنری با ۳ کلید از ورودی کاربر بساز. 💡 نکته: هر تمرین رو توی فایل جدا (ex1.py، ex2.py) ذخیره کن. پروژه کوچک: لیست خرید هوشمند 🛒 برای مثال، بیایم یه برنامه لیست خرید بسازیم که کاربر بتونه موارد رو اضافه یا حذف کنه: لیست خالی بساز. حلقه برای اضافه کردن. امکان حذف و نمایش. کپیshopping_list = [] while True: print("\n=== لیست خرید ===") action = input("اضافه (a)، حذف (r)، نمایش (s)، خروج (q): ") if action == "q": break elif action == "a": item = input("مورد جدید: ") shopping_list.append(item) print(f"{item} اضافه شد!") elif action == "r": item = input("مورد برای حذف: ") if item in shopping_list: shopping_list.remove(item) print(f"{item} حذف شد!") else: print("مورد پیدا نشد!") elif action == "s": print("لیست خرید:", shopping_list) print(f"تعداد موارد: {len(shopping_list)}") print("خداحافظ!") 💡 تست کن: موارد اضافه کن، حذف کن و لیست رو نمایش بده. سؤالات متداول (FAQ) ❓ به طور کلی، این سؤالات برای مبتدیها رایجه: لیست یا تاپل؟ لیست برای دادههای متغیر، تاپل برای ثابت. دیکشنری کی استفاده میشه؟ وقتی نیاز به جستجوی سریع با کلید داری. چطور خطای اندیس رو رفع کنم؟ با len() محدوده رو چک کن. چطور دیباگ کنم؟ با print محتوای لیست یا دیکشنری رو ببین. جمعبندی و قدم بعدی ⏭️ تبریک! 🚀 تو این درس لیستها، تاپلها و دیکشنریها رو یاد گرفتی و با بیش از ۱۲ مثال و یه پروژه، حسابی مسلط شدی. بنابراین، حالا میتونی دادههای پیچیده رو مدیریت کنی. علاوه بر این، درس بعدی (توابع) بهت یاد میده کدت رو تمیز و قابلاستفاده مجدد کنی. در نهایت، تمرینها رو توی PythonLessons ذخیره کن و اگه دوست داشتی، توی GitHub آپلود کن تا پیشرفتت رو نشون بدی! 😎 ← درس قبلی: درس ۲ مقدماتی: ساختارهای کنترلی – شرطها و حلقهها در پایتون درس بعدی: درس ۴ مقدماتی: توابع در پایتون – کدهای تمیز و قابلاستفاده مجدد → برچسبها: data structurespythonبرنامهنویسی مبتدیپایتونتاپل پایتوندیکشنری پایتونلیست پایتون ارسال نظر جدید لغو پاسخ ذخیره نام، ایمیل و وبسایت من در مرورگر برای زمانی که دوباره دیدگاهی مینویسم.
تا حالا فقط با یه داده کار کردیم، اما چی میشه اگه بخوای صدها داده رو مدیریت کنی؟ 📦 برای مثال، لیست خرید، نمرات دانشجوها یا اطلاعات یه کاربر رو تصور کن. تو این درس، با دادهساختارهای مهم پایتون (لیست، تاپل و دیکشنری) آشنا میشی که بهت اجازه میدن دادهها رو ذخیره، تغییر و مدیریت کنی. بنابراین، اگر درسهای ۱ و ۲ (متغیرها، شرطها و حلقهها) رو یاد گرفتی، حالا آمادهای که برنامههات رو حرفهایتر کنی! 🚀 با مثالهای واقعی، جداول مقایسه، ۱۲ تمرین و یه پروژه جذاب، این درس تو رو برای ساخت برنامههای پیچیدهتر آماده میکنه. بریم دادهها رو فتح کنیم! 🎉 لیستها: جعبههای انعطافپذیر 📋 لیستها با [] تعریف میشن و میتونی هر نوع دادهای رو توشون ذخیره کنی. برای مثال، یه لیست میتونه اعداد، متن یا حتی لیستهای دیگه رو نگه داره: کپیnumbers = [1, 2, 3, 4] names = ["علی", "مریم", "رضا"] mixed = [1, "سلام", True] print(names[0]) # خروجی: علی علاوه بر این، لیستها قابل تغییرن، یعنی میتونی محتواشون رو عوض کنی. عملیات مهم: append(item): اضافه کردن به انتها insert(index, item): اضافه کردن در موقعیت خاص remove(item): حذف اولین مورد pop(index): حذف با اندیس به عنوان مثال: کپیnames = ["علی", "مریم"] names.append("رضا") # اضافه به انتها names.insert(1, "سارا") # اضافه در اندیس ۱ names.remove("مریم") # حذف مریم print(names) # ['علی', 'سارا', 'رضا'] به علاوه، میتونی با len() طول لیست و با اسلایس ([start:end]) بخشی از لیست رو بگیری: کپیprint(len(names)) # 3 print(names[1:3]) # ['سارا', 'رضا'] 💡 نکته: اندیس از ۰ شروع میشه. بنابراین، names[0] اولین عنصر رو برمیگردونه. تاپلها: جعبههای قفلشده 🔒 تاپلها با () تعریف میشن و غیرقابل تغییرن. برای مثال، برای دادههایی که نباید عوض بشن (مثل مختصات) عالیان: کپیpoint = (10, 20) print(point[0]) # 10 # point[0] = 5 # خطا! تاپل غیرقابل تغییره به همین دلیل، تاپلها سریعتر از لیستها هستن و برای دادههای ثابت استفاده میشن. به عنوان مثال: کپیcolors = ("قرمز", "آبی", "سبز") print(len(colors)) # 3 print(colors[1:]) # ('آبی', 'سبز') 💡 نکته: اگر بخوای تاپل رو تغییر بدی، باید به لیست تبدیلش کنی: list(colors). دیکشنریها: کلید و مقدار 🗂️ دیکشنریها با {} تعریف میشن و دادهها رو به صورت کلید-مقدار ذخیره میکنن. برای مثال، اطلاعات یه نفر: کپیperson = {"name": "علی", "age": 25, "city": "تهران"} print(person["name"]) # علی person["job"] = "برنامهنویس" # اضافه print(person) # {'name': 'علی', 'age': 25, 'city': 'تهران', 'job': 'برنامهنویس'} علاوه بر این، میتونی کلیدها یا مقادیر رو جدا کنی: کپیprint(person.keys()) # dict_keys(['name', 'age', 'city', 'job']) print(person.values()) # dict_values(['علی', ۲۵, 'تهران', 'برنامهنویس']) 💡 نکته: کلیدها باید منحصربهفرد باشن، وگرنه مقدار جدید جایگزین قبلی میشه. حلقه روی دادهساختارها 🔄 برای مثال، میتونی با حلقه for (درس ۲) روی لیست، تاپل یا دیکشنری بگردی: کپیnumbers = [1, 2, 3] for num in numbers: print(num) # 1, 2, 3 به علاوه، برای دیکشنری از items() استفاده کن: کپیfor key, value in person.items(): print(f"{key}: {value}") به عنوان مثال، روی تاپل: کپیfor color in ("قرمز", "آبی"): print(color) 💡 نکته: حلقهها دادهساختارها رو قویتر میکنن. بنابراین، همیشه ترکیبشون با شرطها (درس ۲) رو تست کن. مقایسه دادهساختارها: کدوم رو انتخاب کنی؟ 📊 برای مثال، این جدول بهت کمک میکنه بهترین دادهساختار رو انتخاب کنی: دادهساختار قابل تغییر اندیس/کلید کاربرد لیست [] بله اندیس (۰ به بعد) دادههای متغیر مثل لیست خرید تاپل () خیر اندیس (۰ به بعد) دادههای ثابت مثل مختصات دیکشنری {} بله کلید (منحصربهفرد) جستجوی سریع مثل اطلاعات کاربر بنابراین، برای دادههای قابل تغییر لیست، برای ثابت تاپل، و برای کلید-مقدار دیکشنری رو انتخاب کن. مثالهای عملی: دنیای واقعی 💡 برای مثال، بیایم چند برنامه کاربردی بسازیم: ۱. میانگین نمرات: کپیgrades = [18, 15, 20, 17] average = sum(grades) / len(grades) print(f"میانگین: {average:.1f}") ۲. مدیریت لیست خرید: کپیshopping = ["شیر", "نان", "تخممرغ"] shopping.append(input("یه مورد اضافه کن: ")) print("لیست خرید:", shopping) ۳. اطلاعات دانشآموز: کپیstudents = {"علی": 18, "مریم": 19} name = input("اسم دانشآموز: ") if name in students: print(f"نمره {name}: {students[name]}") else: print("دانشآموز پیدا نشد!") به همین دلیل، این مثالها درسهای ۱ و ۲ رو با دادهساختارها ترکیب میکنن. کدها رو توی lesson3_examples.py ذخیره کن. خطاهای رایج و راهحلها ⚠️ به طور کلی، این خطاها تو دادهساختارها شایعن: خطا علت راهحل IndexError اندیس خارج از محدوده len() رو چک کن KeyError کلید وجود نداره با in وجود کلید رو چک کن TypeError عملیات روی نوع نادرست نوع داده رو با type() چک کن برای مثال: کپیlst = [1, 2] print(lst[5]) # خطا: IndexError # حل: if len(lst) > 5: print(lst[5]) else: print("اندیس نامعتبر!") تمرینها: مهارتت رو تست کن! 📝 برای تسلط، این ۱۲ تمرین رو حل کن: مجموع اعداد یه لیست رو حساب کن. بزرگترین عدد در یه لیست رو پیدا کن. اعداد زوج یه لیست رو چاپ کن. یه دیکشنری رو معکوس کن (کلیدها بشن مقدار و برعکس). یه لیست رو مرتب کن (با sort()). تعداد تکرار یه کلمه در لیست رو بشمار. یه تاپل از ۳ عدد بساز و مجموعشون رو چاپ کن. دیکشنری دانشآموزان (اسم و نمره) بساز و نمره یه نفر رو چاپ کن. لیست خرید با امکان اضافه و حذف. بررسی وجود یه عدد در لیست. لیست رو به دو لیست زوج و فرد تقسیم کن. یه دیکشنری با ۳ کلید از ورودی کاربر بساز. 💡 نکته: هر تمرین رو توی فایل جدا (ex1.py، ex2.py) ذخیره کن. پروژه کوچک: لیست خرید هوشمند 🛒 برای مثال، بیایم یه برنامه لیست خرید بسازیم که کاربر بتونه موارد رو اضافه یا حذف کنه: لیست خالی بساز. حلقه برای اضافه کردن. امکان حذف و نمایش. کپیshopping_list = [] while True: print("\n=== لیست خرید ===") action = input("اضافه (a)، حذف (r)، نمایش (s)، خروج (q): ") if action == "q": break elif action == "a": item = input("مورد جدید: ") shopping_list.append(item) print(f"{item} اضافه شد!") elif action == "r": item = input("مورد برای حذف: ") if item in shopping_list: shopping_list.remove(item) print(f"{item} حذف شد!") else: print("مورد پیدا نشد!") elif action == "s": print("لیست خرید:", shopping_list) print(f"تعداد موارد: {len(shopping_list)}") print("خداحافظ!") 💡 تست کن: موارد اضافه کن، حذف کن و لیست رو نمایش بده. سؤالات متداول (FAQ) ❓ به طور کلی، این سؤالات برای مبتدیها رایجه: لیست یا تاپل؟ لیست برای دادههای متغیر، تاپل برای ثابت. دیکشنری کی استفاده میشه؟ وقتی نیاز به جستجوی سریع با کلید داری. چطور خطای اندیس رو رفع کنم؟ با len() محدوده رو چک کن. چطور دیباگ کنم؟ با print محتوای لیست یا دیکشنری رو ببین. جمعبندی و قدم بعدی ⏭️ تبریک! 🚀 تو این درس لیستها، تاپلها و دیکشنریها رو یاد گرفتی و با بیش از ۱۲ مثال و یه پروژه، حسابی مسلط شدی. بنابراین، حالا میتونی دادههای پیچیده رو مدیریت کنی. علاوه بر این، درس بعدی (توابع) بهت یاد میده کدت رو تمیز و قابلاستفاده مجدد کنی. در نهایت، تمرینها رو توی PythonLessons ذخیره کن و اگه دوست داشتی، توی GitHub آپلود کن تا پیشرفتت رو نشون بدی! 😎 ← درس قبلی: درس ۲ مقدماتی: ساختارهای کنترلی – شرطها و حلقهها در پایتون درس بعدی: درس ۴ مقدماتی: توابع در پایتون – کدهای تمیز و قابلاستفاده مجدد → برچسبها: data structurespythonبرنامهنویسی مبتدیپایتونتاپل پایتوندیکشنری پایتونلیست پایتون