تابع map در پایتون

توابع built in در پایتون:

توابع built in به توابعی گفته میشود که به صورت پیشفرض در داخل متلب وجود داشته، و برای استفاده از ان باید آنها را فقط فرا خوانی کرده و آرگومان های مورد نیازشان را به تابع مربوطه داد.

تابع map:

این تابع جزو یکی از توابع built in دز پایتون است. که برای انجام یک عملات بر روی توالی عناصر(آیتم‌ها) مورد استفاده قرار میگیرد. این توالی از عناصر میتواند لیست، تاپل یا دیکشنری باشد. به طو رمثال فرض کنید یک لیست از اعداد داریم و میخواهیم توان ۳ هر یک از عناصر آن را بدست بیاریم. در روش معمول برای حل این مسئله از حلقه for استفاده میکنیم. و حاصل توان ۳ هر یک از آیتم های این لیست را در یک لیست جدید ذخیره کرده و به عنوان نتیجه نمایش میدهیم.

list_of_numbers = range(0, 12)
list_of_numbers2 = []
for i in list_of_numbers :
    list_of_numbers2.append(i ** 2)
print('Result: ', list_of_numbers2)

تابع map دارای دو آرگومان میباشد. آرگومان این تابع خود یک تابع است که عملیات مورد نظر را بر روی هر یک هر آیتم های آرگومان دوم انجام میدهد. آرگومان دوم یک یک نوع داده توالی مانند : لیست،تاپل یا دیکشنری است. در قطعه کد بعدی میخواهیم توان ۲ هر یک از آیتم های لیست مثال قبل را توسط تابع squares محاسبه کنیم.برای این کار نام تابع تعریف شده و لیست خودمون را برای map ارسال میکنیم.

def squares(x):
    return x ** 2
list_of_numbers = range(0, 12)
Result = list(map(squares, list_of_numbers))
print('Result = ', Result)

استفاده از توابع  lambda در map:

در مطلب مربوط به توابع بی نام که با استفاده از کلمه کلیدی lambds نوشته میشود به طور کامل به این توابع اشاره کردیم (ادامه مطلب). در قبل اشاره به این کردیم که آرگومان اول تابع map یک تابع است که عملیاتی را بر روی آرگومان دوم که توالی‌ای از آیتم ها است انجام میدهد. حال میخواهیم در قطعه کد بعدی با استفاده از توابع بی نام در تابع map استفاده کنیم.

list_of_numbers = range(0, 12)
Result = list(map(lambda x: x ** 2, list_of_number))
print('Result: ', Result)

به این نکته توجه کنید که برای اینکه بخواهیم نتیجه تابع map را مشاهده کنیم باید با استفاده از تبدیل به سری های توالی مانند list و set استفاده کنیم. به این دلیل که پاسخ تابع map یه کد مربوط به حافظه است.

 

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *