لینک مورد نظر کپی شد!
در این بخش به معرفی نوع جدید از توابع در مباحث پایتون پیشرفته به نام lambda function میپردازیم. این توابع یک بار مصرف هستند و میتوانند به صورت بدون نام یا Anonymous تعریف شوند. نحوه تعریف این توابع به صورت زیر است.
A= Lambda x: x*2
در تعریف این نوع از توابع سه جزء کلیدی وجود دارد:
جزء اول کلمه کلیدی تابع lambda است که یرای پایتون مشخص میکند که در حال تعریف این نوع خاص از توابع هستیم
جزء دوم آرگومان ورودی تابع است که بعد از کلمه lambda قرار میگیرد و نمایانگر ورودی تابع است.
جزء سوم تعریف عملیات درون تابع است که به صورت expression بعد از علامت : قرار میگیرد.
پس از تعریف تابع A به صورت فوق میتوان با فراخوانی این تابع به صورت A(x) روی پارامترهای ورودی مخصوص به تابع دستورات تعریف شده توسط برنامه نویس را اعمال کرد. یکی از کاربردهای مهم این توابع استفاده از آنها به عنوان تابع filter ها و map هاست.
در ادامه درباره دو قابلیت مهم در پایتون پیشرفته صحبت میکنیم. دستورات filter و تابع map در پایتون
تابع map در پایتون این امکان را به شما میدهد که یک تابع را روی تمام اعضای یک لیست اعمال کنید.
نحوه تعریف map به صورت زیر است.
Map(function , list_name)
ورودی اول دستور map یک تابع است که باید روی لیست اعمال شود که معمولا یک lambda function است و ورودی دوم دستور نام لیستی است که تابع روی ان اعمال میشود. map(lambda x: x**2, items)
قابلیت filter شبیه به مپ عمل میکند با این تفاوت که امکان چک کردن یک شرط را روی تمام اعضای یک لیست را فراهم میکند.
filter(lambda x: x < 0, number_list)
همانطور که مشاهده میکنید فیلترها همانند مپ ها دو ورودی دارند. ورودی اول یک lambda function است که شرط مورد نظر داخل آن تعریف میشود و ورودی دوم نام لیستی است که این شرط روی آن اعمال میشود. خروجی این دستور لیستی از آیتم هاست که مقدار تابع در این آیتم ها true بوده است.