Python

تابع map

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

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

نحوه عملکرد:

فرض کنید لیست numbers شامل مقادیر [۱, ۲, ۳, ۴] و تابع square(x) مربع هر عدد را برمی‌گرداند.

با اجرای دستور map(square, numbers), یک iterable جدید شامل مقادیر [۱, ۴, ۹, ۱۶] (مربع هر عدد در لیست numbers) ایجاد می‌شود.

تفاوت با for:

  • map() یک iterable جدید برمی‌گرداند، در حالی که for فقط کد را برای هر عنصر از iterable اجرا می‌کند.
  • map() از تنبلی (laziness) پشتیبانی می‌کند، به این معنی که عناصر iterable تا زمانی که به آنها نیاز نباشد، محاسبه نمی‌شوند.

مثال‌های کاربردی:

۱. مجذور کردن عناصر لیست:

Python
numbers = [۱, ۲, ۳, ۴]

def square(x):
  return x * x

squared_numbers = map(square, numbers)
print(list(squared_numbers))  # خروجی: [۱, ۴, ۹, ۱۶]

۲. اعمال تابع به دو لیست:

Python
numbers1 = [۱, ۲, ۳]
numbers2 = [۴, ۵, ۶]

def add_numbers(x, y):
  return x + y

summed_numbers = map(add_numbers, numbers1, numbers2)
print(list(summed_numbers))  # خروجی: [۵, ۷, ۹]

۳. تبدیل نوع عناصر لیست:

Python
strings = ["apple", "banana", "cherry"]

def to_upper(x):
  return x.upper()

upper_strings = map(to_upper, strings)
print(list(upper_strings))  # خروجی: ['APPLE', 'BANANA', 'CHERRY']

۴. فیلتر کردن عناصر با map():

Python
numbers = [۱, ۲, ۳, ۴, ۵]

def is_even(x):
  return x % ۲ == ۰

even_numbers = map(is_even, numbers)
filtered_numbers = list(filter(lambda x: x is True, even_numbers))
print(filtered_numbers)  # خروجی: [۲, ۴]

نکات:

  • map() برای اعمال یک تابع ساده به هر عنصر از یک iterable مفید است.
  • اگر به دنبال اعمال یک تابع و سپس فیلتر کردن نتایج هستید، می توانید از ترکیب map() و filter() استفاده کنید.
  • map() از تنبلی (laziness) پشتیبانی می‌کند، به این معنی که می‌توانید از آن در عملیات حجیم بدون اشغال حافظه زیاد استفاده کنید.
  • می توانید از map() برای اعمال توابع به انواع مختلف داده (مانند لیست، تاپل و رشته) استفاده کنید.
۰/۵ ( ۰ امتیاز )
نمایش بیشتر

دیدگاهتان را بنویسید

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

دکمه بازگشت به بالا