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

قطعه کد ۲ نیز مشابه قطعه کد ۱ است با این تفاوت که از یک تابع برای بدست آوردن توان ۲ هر یک از آیتم های لیست ارسالی به تابع استفاده شده است. مقدار برگشتی تابع نیز یک لیست از توان ۲ های اعداد لیست ارسال شده به تابع است.

تابع map در پایتون دو آرگومان را دریافت می کند که اولین آرگومان یک تابع است که عملیاتی را بر روی هر یک از آیتم های آرگومان دوم انجام می دهد و آرگومان دوم یک نوع داده توالی مانند لیست، دیکشنری، تاپل و غیره خواهد بود. بنابراین مطابق قطعه کد ۳ یک تاپل از اعداد صفر تا ۱۰ داریم که می خواهیم توان ۲ هر یک از آیتم های آنرا توسط تابع squares محاسبه کنیم. بنابراین تاپل و نام تابع را به تابع map ارسال کرده ایم.

اگر قطعه کد ۳ را در پایتون ۲ اجرا کنید، نتیجه آن یک لیست از خروجی (در اینجا توان ۲ هر عدد) خواهد بود که در زیر نشان داده شده است.

ولی اگر کد ۳ را در پایتون ۳ اجرا کنید، خروجی یک Iterator خواهد بود و باید با یکی از توابع list یا tuple و حتی تابع set خروجی دلخواه خود را ایجاد کنید. تابع set برای تبدیل یک توالی به یک نوع مجموعه استفاده می شود. طبق تعریف ریاضیاتی، هر مجموعه تعدادی عنصر غیر تکراری دارد.

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

در مطلب lambda برای تعریف توابع بی نام در پایتون گفته شد که توابع lambda معمولا همراه توابع map, reduce و filter استفاده می شوند. قطعه کد ۶ مثالی را نشان می دهد که از تابع lambda درون تابع map استفاده شده است.

با استفاده از تابع lambda می توانیم چندین Iterator را به تابع map مانند قطعه کد ۷ ارسال کنیم. در قطعه کد ۷ تابع lambda دو آرگومان x و y را دریافت می کند و سپس آیتم های نظیر به نظیر هر یک را با هم جمع می کند.

در کد ۷ طول لیست list_of_numbers1 یکی بیشتر از لیست list_of_numbers2 است و در محاسبه x + y تابع lambda شرکت نمی کند، بنابراین طول لیست خروجی برابر با طول لیست با طول کمتر خواهد بود. (در قطعه کد ۷ از تابع lsit استفاده شده است)