آموزش

آموزش و مثال‌های توابع و متدهای لیست در پایتون

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

تاریخ انتشار:
10 شهریور 1405
پایتون
7 دقیقه
کاربرهای فینکا در چه شرکت‌هایی مشغول به کار هستند؟

در پایتون می‌تونی با استفاده از تابع list() یه لیست بسازی و عملیات‌های مختلفی روش انجام بدی.

با اینکه در پایتون همه‌ی متدها تابع هستن، اما همه‌ی توابع متد نیستن. یه فرق اساسی بین توابع و متدها در پایتون وجود داره: توابع، اشیاء رو به عنوان ورودی می‌گیرن، ولی متدها روی اشیاء اعمال می‌شن.

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

  • sort(): لیست رو به صورت صعودی مرتب می‌کنه.
  • type(list): نوع کلاس یه شیء رو برمی‌گردونه.
  • append(): یه عنصر رو به لیست اضافه می‌کنه.
  • extend(): چند تا عنصر رو به لیست اضافه می‌کنه.
  • index(): اولین اندیس مقداری که بهش دادی رو پیدا می‌کنه.
  • max(list): آیتمی از لیست رو که بیشترین مقدار رو داره برمی‌گردونه.
  • min(list): آیتمی از لیست رو که کمترین مقدار رو داره برمی‌گردونه.
  • len(list): طول کل لیست رو بهت می‌ده.
  • list(seq): یه تاپل رو به لیست تبدیل می‌کنه.
  • cmp(list1, list2): عناصر دو تا لیست list1 و list2 رو با هم مقایسه می‌کنه.
  • filter(fun,list): با استفاده از یه تابع پایتون، لیست رو فیلتر می‌کنه. 
  • توابع و متدهای لیست در پایتون

متد ()sort در پایتون

متد sort() یه متد داخلی پایتونه که به طور پیش‌فرض، لیست رو به صورت صعودی مرتب می‌کنه. با این حال، می‌تونی با تعیین معیارهای مرتب‌سازی، ترتیب رو نزولی هم بکنی.

مرتب‌سازی لیست به صورت صعودی

فرض کن می‌خوای عناصر داخل prices رو به صورت صعودی مرتب کنی. برای این کار باید اول prices رو بنویسی، بعد یه نقطه (.) بذاری و در نهایت اسم متد یعنی sort() رو همراه با پرانتزهاش بنویسی.

خروجی
[237.81, 238.11, 238.91]

تابع ()type در پایتون

تابع type() نوع کلاسِ یه شیء رو برمی‌گردونه.

بررسی نوع داده‌ی یه لیست

اینجا می‌خوایم ببینیم نوع fam و fam2 چیه:

خروجی
['liz', 1.73, 'emma', 1.68, 'mom', 1.71, 'dad', 1.89]

بیا ببینیم نوع این شیء چیه:

خروجی
<class 'list'>

حالا بیا یه نگاهی به fam2 بندازیم.

خروجی
[['liz', 1.73], ['emma', 1.68], ['mom', 1.71], ['dad', 1.89]]

بیا ببینیم از چه نوعیه:

خروجی
<class 'list'>

این خروجی‌ها نشون می‌دن که fam و fam2 در واقع جفتشون لیست هستن.

متد ()append در پایتون

متد append() یه مقدار جدید رو به انتهای لیست اضافه می‌کنه.

اضافه کردن یک عنصر به لیست

بیا با استفاده از متد append() و اضافه کردن "April" به لیست، اون رو بزرگ‌تر کنیم. استفاده از append() طول لیست رو 1 واحد بیشتر می‌کنه.

خروجی
['January', 'February', 'March', 'April']

متد ()extend در پایتون

متد extend() طول لیست رو به اندازه‌ی تعداد عناصری که بهش دادی زیاد می‌کنه؛ پس اگه خواستی چند تا عنصر رو هم‌زمان به لیست اضافه کنی، می‌تونی از این متد استفاده کنی.

اضافه کردن چند تا عنصر به لیست

خروجی
[1, 2, 3, 4, 5]

متد ()index در پایتون

متد index() اولین اندیس مقداری که بهش دادی رو برمی‌گردونه.

پیدا کردن موقعیت یک عنصر

بیا اندیس February رو در لیست months بررسی کنیم.

خروجی
1

این متد کمک می‌کنه بفهمیم که 'February' در اندیس 1 قرار داره. حالا می‌تونیم با استفاده از این اندیس، به قیمت مربوط به 'February' دسترسی پیدا کنیم.

خروجی
237.81

تابع ()max در پایتون

تابع max() بیشترین مقدار رو بین ورودی‌هایی که بهش می‌دیم برمی‌گردونه.

پیدا کردن بزرگترین مقدار در یک لیست

در این مثال، می‌خوایم از تابع max() استفاده کنیم تا بالاترین قیمت رو در لیستی به اسم prices پیدا کنیم.

خروجی
159.54

تابع ()min در پایتون

تابع min() کمترین مقدار رو بین مقادیر ورودی برمی‌گردونه.

پیدا کردن کوچکترین مقدار در یک لیست

در این مثال، می‌خوای ماهی رو پیدا کنی که کمترین شاخص قیمت مصرف‌کننده (CPI) رو داشته.

برای پیدا کردن ماهی با کمترین شاخص قیمت مصرف‌کننده، اول تابع min() رو روی prices اعمال می‌کنی تا min_price مشخص بشه. بعد می‌تونی از متد index() استفاده کنی تا اندیس min_price رو پیدا کنی. با استفاده از این اندیس در لیست months، می‌تونی ماهی که کمترین شاخص قیمت رو داره پیدا کنی.

خروجی
February

تابع ()len در پایتون

تابع len() تعداد عناصر یه لیست رو بهمون می‌ده. در مثال زیر، دوباره با استفاده از اعداد صحیح، نگاهی به داده‌های قیمت سهام می‌ندازیم.

شمردن عناصر یک لیست

خروجی
stock_price_1 length is 1
stock_price_2 length is 3

تابع ()list در پایتون

تابع list() یه شیء قابل پیمایش (iterable) می‌گیره و اون رو به یه لیست تبدیل می‌کنه. سینتکسش هم این‌طوریه:

تبدیل کردن یک تاپل به لیست

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

تابع ()filter در پایتون

تابع filter() یه تابع و یه مجموعه‌ داده (مثل لیست) رو می‌گیره و یه پیمایشگر از عناصر فیلترشده برمی‌گردونه. می‌تونی خودت یه تابع فیلتر در پایتون بنویسی یا از تابع لامبدا استفاده کنی تا یه لیست فیلترشده تحویل بگیری. 

نکته: برای گرفتن لیست فیلترشده، می‌تونی از حلقه‌ها، لیست کامپرهنشن و تطبیق الگو روی رشته‌ها هم استفاده کنی. 

فیلتر کردن عناصر لیست بر اساس یک شرط

اول یه تابع فیلتر می‌سازیم که مقادیر بولین برمی‌گردونه. این تابع شامل منطق‌های خیلی ساده‌ست. در این مثال، می‌خوایم قیمت‌های بالاتر از 350 رو فیلتر کنیم. بعدش از تابع filter() استفاده می‌کنیم تا این تابع رو روی لیست item_price اعمال کنیم و یه پیمایشگر از عناصر فیلترشده بگیریم. 

برای دسترسی به عناصر فیلترشده، می‌تونیم مقدارشون رو با یه حلقه‌ی for بکشیم بیرون یا اینکه اون پیمایشگر رو به یه لیست تبدیل کنیم.  

همچنین می‌تونی با استفاده از تابع لامبدا، کدت رو در یه خط خلاصه کنی و عناصر فیلترشده رو راحت‌تر بگیری. 

خروجی
[400, 450, 370]

برای یادگیری بیشتر درباره‌ی متدها و توابع لیست، بهتره این ویدیو رو از دوره‌ی مقدمه‌ای بر پایتون برای امور مالی فینکا ببین.

این محتوا از دوره‌ی مقدمه‌ای بر پایتون برای امور مالی فینکا برداشته شده.

اشتراک‌گذاری
فهرست مطالب
  • متد ()sort در پایتون
  • تابع ()type در پایتون
  • متد ()append در پایتون
  • متد ()extend در پایتون
  • متد ()index در پایتون
  • تابع ()max در پایتون
  • تابع ()min در پایتون
  • تابع ()len در پایتون
  • تابع ()list در پایتون
  • تابع ()filter در پایتون

سوالات متداول

لیست یکی از ساختارهای داده‌ی اصلی و داخلی پایتونه که برای ذخیره‌ی هر تعداد آیتم استفاده می‌شه. از ویژگی‌های مهم لیست‌های پایتون اینه که قابل پیمایشن، مرتبن، دارای اندیسن و قابل تغییرن و مقادیر تکراری رو هم قبول می‌کنن.

کافیه یه سری آیتم رو داخل براکت بذاری و با کاما از هم جداشون کنی، مثلاً ['cake', 'ice-cream', 'donut']. یه راه دیگه هم استفاده از تابع داخلی list() هست: list(('cake', 'ice-cream', 'donut')). برای ساختن یه لیست خالی، می‌تونی از براکت خالی ([]) یا تابع list() بدون هیچ آرگومانی استفاده کنی. معمولاً لیست پایتون رو می‌ریزن در یه متغیر تا بعداً بشه ازش استفاده کرد.

وقتی لازم داریم چند تا آیتم مرتبط رو با یه ترتیب مشخص کنار هم نگه داریم (که ممکنه نوع داده‌هاشون فرق کنه یا تکراری باشن) از لیست استفاده می‌کنیم. این‌طوری بعداً می‌تونیم اون آیتم‌ها رو تغییر بدیم، چیز جدیدی بهشون اضافه یا ازشون حذف کنیم، و یه عملیات رو هم‌زمان روی چند تا مقدار انجام بدیم.

هر نوع شیءای در پایتون، چه ساده (مثل اعداد صحیح، اعشاری، رشته‌ها و بولین) و چه پیچیده (مثل بقیه لیست‌ها، تاپل‌ها، دیکشنری‌ها و غیره). در یه لیست پایتون می‌تونه انواع مختلفی از داده‌ها کنار هم قرار بگیره، مثلاً ['cake', 1, 3.14, [0, 2]]. همین ویژگی باعث می‌شه این ساختار داده خیلی منعطف باشه.

بله. آیتم‌های یه لیست در پایتون ترتیب ثابتی دارن و به همین خاطر اندیس‌دارن. هر آیتم در لیست، یه اندیس داره که جایگاهش رو نشون می‌ده و از 0 برای اولین آیتم شروع می‌شه. اندیسِ آخرین آیتمِ لیست هم N-1 هست (که N تعداد کل آیتم‌های لیسته).

بله. بعد از اینکه یه لیست پایتون رو ساختی، می‌تونی مقادیر آیتم‌هاش رو تغییر بدی، بدون اینکه لازم باشه لیست رو دوباره به یه متغیر جدید اختصاص بدی. همچنین می‌تونی آیتم‌هایی رو اضافه یا حذف کنی که باعث می‌شه اندازه لیست به صورت پویا تغییر کنه.

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

متد append() بهت اجازه می‌ده فقط یه آیتم رو به انتهای لیست پایتون اضافه کنی، اما با متد extend() می‌تونی چند تا آیتم رو هم‌زمان اضافه کنی. در حالت اول، طول لیست فقط 1 واحد بیشتر می‌شه، ولی در حالت دوم، طول لیست به اندازه‌ی تعداد آیتم‌هایی که اضافه کردی افزایش پیدا می‌کنه.

دریافت اپلیکیشن فینکا

با اپلیکیشن فینکا، به بیشتر دوره‌ها و مسیرها روی موبایل دسترسی دارید، تمرین می‌کنید و یادگیری رو هم‌زمان روی موبایل و دسکتاپ ادامه می‌دید.