آموزش لیست ها (list) در پایتون (Python) + فیلم

در این مطلب، به طور خیلی کامل به آموزش لیست ها (list) در پایتون (Python) می‌پردازیم و با کلی مثال و تمرین، مبحث رو کامل یاد خواهید گرفت! در ضمن این آموزش فیلم آموزشی نیز دارد!

دانلود فیلم آموزشی این مطلب

دانلود فیلم آموزشی (حجم: حدود ۲۶ مگابایت) (مدت زمان: حدود ۱۷ دقیقه)

– تذکر: برای دانلود فیلم بر روی لینک “دانلود فیلم آموزشی” راست کلیک و سپس گزینه Save Link As را بزنید!

مقدمه

ساده ترین ساختار داده (Data Structure) در پایتون (Python) یک توالی (Sequence) از اعداد است! اما بجای اینکه بریم سراغ تعریف‌های خشک! همگی میدونیم لیست چیست!

مثلاً لیستی از اعداد ۱ تا ۱۰!

لیستی از دانش آموزان کلاس دوم دبیرستان!

لیستی از اسامی نمایندگان مجلس!

لیست نمرات یک دانشجو!

و غیره …!

تعریف یک لیست

فرض کنید می‌خواهیم لیستی با نام a از اعداد ۲ و ۵ و ۷ و ۱۲ و ۱۴ بسازیم! در این صورت داریم:!

خب نکته مهم اینکه اعضای یک لیست رو داخل [] قرار می‌دیم!

حالا در ادامه فرض کنید می‌گیم!:

یعنی در خط ۱ از قطعه کد بالا میگیم که خود a رو چاپ کن!

در خط دوم هم می‌گیم که نوع (type یعنی نوع) متغیر a رو برامووون چاپ کن!

که خروجیش میشه!:

در خط اول که دوباره لیست رو چاپ کرده!

در خط دوم هم به وضوح نوشته که نوعش list است!

چند نکته و تذکر

نکته: اعضای یک لیست می‌تونه یک عدد صحیح (integer)، عدد اعشاری (float)، True یا False (که بهش میگن Boolean)، رشته/متن (string)، و غیره… باشه! (یه عده از این “غیره” که گفتیم رو هنوز نخوندیم!)

مثلاً لیست زیر که ترکیبی از برخی موارد فوق است را در نظر بگیرید:!

توجه: یک لیست می‌تواند خالی باشد:!

تذکر: در لیست ترتیب مهم است و همچنین مشاهدات تکراری نیز مجاز است!

مثلاً در بالا متغیری تعریف کرذیم به اسم dice (به معنی تاس!)

و برای مهم بودن ترتیب در لیست، به مثال زیر توجه کنید!

همینطور که مشاهده می‌کنید در خط اول، یک لیست به اسم numbers (به معنی اعداد) تعریف کردیم! و در خط دوم یک لیست به اسم letters (به معنی حروف) تعریف کردیم!

حالا یک متغیر به اسم d تعریف کردیم که برابر است با اعداد + حروف! و متغیر e که برابر است با حروف + اعداد !

در دو خط آخر هم به ترتیب میگیم که d و e رو چاپ کنه! که خروجی به صورت زیر خواهد بود!

به وضوح مشخصه که ترتیب مهمه! در اولی اول “اعداد” اومدن و بعد “حروف”!

در دومی اول “حروف” اومدت و بعد “اعداد”!

دسترسی به مولفه‌های یک لیست

مجددا لیست زیر را در نظر بگیرید!

قبل از اینکه اصلاً صحبت کنیم درباره خود این مبحث! باید با اندیس‌گذاری در پایتون آشنا باشید! که برای این منظور مراجعه کنید به مطلب زیر! و می‌بینید که اوایل اون مطلب، خیلی کامل و خوب در مورد اندیس گذاری در پایتون (Python) صحبت کردیم!

 

ولی به عنوان یک جمله کلیدی یادتون باشه که اندیس‌گذاری پایتون (Python) از صفر شروع میشه! (مطلب بالا رو بخونید!)

حالا فرض کنید از همون متغیر dice که نتایج یک پرتاب تاس بود، می‌خوایم ببینیم دفعه اول چی اومده! میگیم:!

که خروجی میده ۶! (مولفه اول دارای اندیس صفر است!) (اگر این موارد رو متوجه نمی‌شید باید اون مطلب range که در بالا گفتم رو بخونید!)

یه مثلاً فرض کنید می‌خوایم ببینیم که در چهارمین بار چی اومده!

که نتیجه ۲ میده!

توجه دارید که برای دسترسی به مولفه هرچیزی که چه الان بگیم و چه بعدا میگیم از [] استفاده می‌کنند! (اگر یادتون باشه در تعریف لیست هم از همین استفاده کردم! هرچند موارد استفاده و جایی که هر کدوووم رو استفاده می‌کنیم فرق میکنه و باهم قاطی نمیشن!)

حالا فرض کنید می‌خوایم ببینیم دفعات اول و دوم و سوم چی اومده!

شاید بگید چرا ۳ ؟! مگر ۰ نمیشه مولفه اول، ۱ میشه مولفه دوم، ۲ هم میشه مولفه سوم! پس چرا گفتیم ۰ تا (اون : یعنی “تا”) ۳! جواب اینه که مگر قرار نشد اون آموزش range بالا رو بخونید؟! از اون مطلب می‌دونیم که در پایتون (Python) در این فرمت که بازه‌ای از اندیس‌ها رو بهش میدیم، مولفه آخر رو در نظر نمی‌گیره! (لطفا اون مطلب رو نگاه کنید! اگر بخوایم توضیح بدیم، یا باید سَمْبلش کنیم که خوب نیست! و یا باید کلاً بحث رو به حاشیه بکشیم!)

خلاصه قطعه کد بالا نتیجه میده:

یک سری جنگولک بازی‌ها!

جنگولک بازی شماره ۱: لیست زیر رو در نظر بگیرید!:

فرض کنید که می‌خوایم به اون مولفه که نوشته کولاک دسترسی پیدا کنیم! میگیم:!

حالا فرض کنید باز میخوایم بیشتر بریم توووووووو (=داخل) ! یعنی نه تنها Koolac، بلکه از خود کلمه کولاک هم می‌خوایم مولفه آخرش رو فراخوانی کنیم! پس میگیم:!

که خروجی میده: c !

و توجه داریم که در کد بالا، اون f[4] که یعنی Koolac، و باز اون [۵] که جلوش نوشتیم یعنی از خود کولاک به اندیس ۵ اُم دسترسی پیدا کن! راستی اگر اون مطلب range رو خوندید! بگید که بجز چیزی که نوشتیم، برای اشاره به مولفه آخر دیگه چی میتونستیم بنویسیم؟!

بله درسته، طبق کد زیر که توی اون آموزش range توضیح دادیم! و دیگه تکرار نمی‌کنیم و فقط کد رو میاریم:!

و اون اندیس منفی یک، یعنی همون عنصر آخر! خواهشاً اون مطلب range رو بخونید! همش احساس می‌کنم نخوندید و دارید ادامه میدید! و من هِی حرص می‌خورم!! چون واقعا پیش نیازه!

جنگولک بازی شماره ۱: حالا دوباره روی همون لیست f که در بالا تعریف کردیم، مثال زیر رو در نظر بگیرید!

یعنی با اینکه f اندیس ۵۰۰ نداره! ولی بهش گفتیم از اندیس ۷ تا ۵۰۰ رو پرینت کن! خب در اینجا باید بگیم که پایتون (Python) به حدی از شعور و فهم رسیده که از اندیس ۷ تا جایی که وجود داره رو چاپ کنه! و خروجی زیر رو میده:!

بروز رسانی مقادیر یک لیست (list)

مجدداً همون لیست f رو در نظر بگیرید!

فرض کنید در لیست f بجای اون مولفش که نوشته سجاد می‌خوام بذارم Rahmani! در این صورت اولا شما بگید: اندیس اون مولفه چنده؟ …. بله درسته… اندیس شماره ۹! خب! پس حالا می‌تونیم بریم تا قطعه کد زیر رو با هم ببینیم!

همینطور که می‌بینید گفتیم بجای مولفه با اندیس ۹ از لیست f بیا Rahmani بذار!

تمرین

تمرین: ۳ مقدار اول لیست f را به مقادیر زیر عوض کنید!

[۶,۶,۴]

جواب (اول خودتون حل کنید، بعد جواب رو نگاه کنید!):

که خروجی میشه:

تابع list

این تابع میاد و به لیست تبدیل میکنه! مثلاً کد زیر رو در نظر بگیرید!

از فیلم مربوط به range میدونیم که range(1,5) یعنی اعداد ۱ و ۲ و ۳ و ۴ ! اینو در خط اول ریختیم در متغیر a!

در خط دوم، همینو به لیست تبدیل می‌کنیم! و سپس در خط سوم پرینتش می‌کنیم! نتیجش میشه:!

[۱, ۲, ۳, ۴]

لیست های تو در تو (nested lists)

این اسمش خیلی خوف و خفنه! وگرنه چیز خاصی نیست! اگر توی یک لیست، یک list تعریف کنیم، میشه nested lists یا لیست های تو در تو! مثلاً قطعه کد زیر رو در نظر بگیرید!

که در واقع یک لیست هست به اسم g ! که مولفه چهارم این لیست (که میشه شماره اندیس ۳) خودش یک list دیگه‌اس!

مثلاً فرض کنید در همین لیست g می‌خوایم به اون Koolac دسترسی پیدا کنیم! اولا میدونیم g[3] ما رو میرسونه تا دمِ درِ خونه اون لیستِ داخلی! بعد حالا اگر بگیم g[3][2] در واقع دقیقا دسترسی پیدا میکنیم به همون Koolac! پس در واقع ما می‌نویسیم:!

و اون جواب میده: Koolac

حالا یک تمرین!:

تمرین: در همان لیست g، راهی برای دسترسی پیدا کردن به Ali پیدا کنید!

جواب (اول خودتون حل کنید، بعد جواب رو نگاه کنید!):

آموزش های پیشنهادی از مجموعه پایتون (Python):

آموز تولید عدد تصادفی از حدود ۲۰ توزیع

آموزش ایجاد ماتریس با پایتون

آموزش تابع eval

کانال تلگرامی ما رو هم دنبال کنید (هر روز تمرین پایتون و مطالب مفیدی قرار میدیم)@Koolac_Org
+