lambda در زبان پایتون به چه معناست ؟

2

lambda در زبان پایتون به چه معناست ؟ 

کیانا ابراهیمی سوال پاسخ داده شده اکتبر 15, 2020
گذاشتن نظر
0

lambda در زبان پایتون به چه معناست ؟ 

تابع دو خطی بخش قبل شاید شما را وسوسه کرده باشد که کد کوتاهتـري بـراي آن بنویسـید. پایتون نحوة نگارشی را براي نوشتن توابع کوتاه فراهم ساخته که نیل به این هدف را ممکن میسازد:

>>> zeroList = lambda n:[0 for i in range(n)]

با مقایسۀ این کد با تابع zeroList در بخش قبل، به راحتی چگـونگی کـار بـا lambda را خواهید آموخت. بعد از کلمۀ کلیدي lambda نام پارامترها ذکر میشـوند و پـس از علامـت کـولن (:)، مقـدار برگشتی. با انتساب این کد به هر متغیر، آن متغیر قابلیت یک تابع را خواهد یافت:

>> zeroList(4)
[0, 0, 0, 0]

میتوانید آرگومانهاي اختیاري را هم در توابعی که به این صورت میسازید، منظور کنید:

>> prefix=lambda x,y=’Mr.’: y+’ ‘+x
>>> print prefix(‘Janson’)
Mr. Janson
>>> print prefix(‘Janson’,’Mrs.’)
Mrs. Janson

براي اینکه مثال زیباتري را بـه شـما نشـان دهـیم، بیاییـد ابتـدا تـابع reduce کـه از توابـع پیشساختۀ پایتون است را بررسی کنیم. تابع reduce یک تابع و یک دنبالـه را بـه عنـوان آرگومـان دریافت میکند. تابعی که بهعنوان آرگومان بـه reduce فرسـتاده مـیشـود، حتمـاً بایـد مسـتقلاً دو آرگومان دریافت کند و مقداري را بازگرداند. reduce مقدار اول و دوم دنباله را برداشته و تابع مـذکور را براي آنها فرامیخواند. سپس مقدار برگشتی از تابع را با مقدار سوم از دنباله بـه تـابع مـیفرسـتد و نتیجه را با عضو چهارم دنباله به تابع میفرستد. این کار تا زمانی که اعضاي دنبالـه تمـام شـوند، ادامـه مییابد. در آخر مقدار برگشتی تابع توسط reduce برگردانده میشود. فرض کنید تابعی که به عنوان آرگومان در نظر گرفته میشود، تابعی بـراي محاسـبۀ ضـرب دو عدد باشد:

>> mult=lambda x, y : x*y

این تابع را به همـراه (1+n,-1(range بـه reduce مـیفرسـتیم. n مـیتوانـد هـر عـدد صحیحی باشد که در اینجا ما آن را با عدد 5 امتحان میکنیم:

>> print reduce(mult,range(1, 5+1))
120

این کار را براي اعداد 4 و 6 نیز تکرار کنید. جوابها 24 و 720 خواهند بود. حتماً تا بـه حـال متوجه شدهاید که این نتایج، فاکتوریل اعدادند. پس تابع factorial را بازنویسی میکنیم:

def factorial(n):
return reduce(lambda x, y : x * y, range(1, n+1), 0)

آرگومان سوم، اختیاري است. این مقدار در صورتی که مقداري در دنبالۀ فرستاده شده به عنوان آرگومان یافته نشود، برگردانده میشود. میدانید که فاکتوریل عدد 0 برابر با 1 است:

>> factorial(0)
1

اما متأسفانه اشکالاتی هم در این کد وجود دارد:

>> factorial(-1)
1

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

بستر اموزش های ویدویی 

کیانا ابراهیمی سوال پاسخ داده شده اکتبر 15, 2020
گذاشتن نظر
پاسخ خود را بنویسید .
  • فعال
  • بازدیدها1291 times
  • پاسخ ها1 پاسخ
ورود به متاورس | متاورس ایرانی
ورود به متاورس ایران یا همان متاورس ملی

علامت ذره بین Tutorials سمت راست به رنگ قرمز به شما کمک خواهد کرد .

جدید ترین سوالات پرسیده شده

منقضی شدن سم بتانال 1 پاسخ | 0 آرا
ایا ایدز گزفتم؟ 0 پاسخ ها | 0 آرا
انتخاب ورزش رزمی 0 پاسخ ها | 1 رای
وزارت تعاون کار و رفاه اجتماعی نماد اعتماد الکترونیک اسناد و املاک کشور مرکز آموزش ویدیویی انجمن حم فروشگاه ملی تولید کنندگان مدیریت بر مدیران حم سامانه حیوانات رسانه ملی اخبار متا دانشگاه متاورس استخدام | دانش فروشگاه حم تبلیغات ملی بازار NFT متاورس رنگ نقشه ملی سه بعدی متا املاک و مستغلات