آموزش تابع map در پایتون

زمان مطالعه: 5 دقیقه ویرایش: 1401/10/14

سلام!

رسیدیم به آموزش تابع map در پایتون.بدون هیچ معطلی بریم سراغ آموزش!

 


اول برای فهم کار این تابع یک مثال میزنیم.

فرض کنید لیستی به نام x داریم که توش چند تا عدد به صورت استرینگ داریم:

x = ["1", "2", "3"]

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

 

 


شروع

برای استفاده از این تابع، باید نام تابعی که میخواین روی هر کدوم از اعضا اجرا بشه رو به عنوان پارامتر اول بنویسیم(دقت کنید توی این قسمت نباید پرانتز های تابع رو بگذاریم) و در پارامتر دوم، نام لیستی که قراره این کار روش انجام بشه رو مینویسیم.

ما میخواستیم اون ها رو اینتجر کنیم بنابراین در پارامتر اول int و همچنین نام لیستمون هم x بود بنابراین پارامتر دوم هم x میذاریم

به این صورت:

x = ["1", "2", "3"]
result = map(int, x)

خروجی این تابع به صورت یک آبجکت هست که خیلی برای ما قابل خوندن نیست. برای همین باید اون رو با استفاده از تابع list، به لیست تبدیل می‌کنیم :)

result = list(map(int, x))

خب حالا این متغیرمون رو پرینت می‌کنیم تا نتیجه رو ببینیم:

>>> x = ["1", "2", "3"]
>>> result = list(map(int, x))
>>> print(result)
[1, 2, 3]

نتیجه این برنامه [1, 2, 3] هست که یعنی برناممون رو درست نوشتیم و به خواستمون رسیدیم :)

 


نکات:

تابعی که به map میدیم حتما نباید از توابع خود پایتون باشه و میتونیم اون رو خودمون بنویسیم.

مقدار پارامتر دوم map حتما لیست نباید باشه و میتونه به صورت تاپل ها و .. هم باشه

 

نمونه برنامه با نوشتن تابع خودمون و ورودی تاپل:

def double(num):
    return num * 2

x = (1, 2, 3)
result = tuple(map(double, x))
print(result)

خروجی این برنامه هم (2, 4, 6) هست که درسته.

 

 

 خب این مقاله هم تموم شد امیدوارم استفاده کرده باشید. اگه مشکلی داشتین حتما از قسمت دیدگاه ها مطرح کنید تا با هم برطرفش کنیم ;)

اگه از این مقاله راضی بودین  یادتون نره :))



4
user نوشته شده توسط علی سلیمی برنامه نویس پایتون و جنگو


دیدگاه


برای ثبت دیدگاه، وارد شوید



عالی بود علی


علی سلیمی: خیلی ممنون