Python

تابع map

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

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

نحوه عملکرد:

فرض کنید لیست numbers شامل مقادیر [1, 2, 3, 4] و تابع square(x) مربع هر عدد را برمی‌گرداند.

با اجرای دستور map(square, numbers), یک iterable جدید شامل مقادیر [1, 4, 9, 16] (مربع هر عدد در لیست numbers) ایجاد می‌شود.

تفاوت با for:

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

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

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

Python
numbers = [1, 2, 3, 4]

def square(x):
  return x * x

squared_numbers = map(square, numbers)
print(list(squared_numbers))  # خروجی: [1, 4, 9, 16]

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

Python
numbers1 = [1, 2, 3]
numbers2 = [4, 5, 6]

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

summed_numbers = map(add_numbers, numbers1, numbers2)
print(list(summed_numbers))  # خروجی: [5, 7, 9]

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

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']

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

Python
numbers = [1, 2, 3, 4, 5]

def is_even(x):
  return x % 2 == 0

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

نکات:

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

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

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

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