تابع Python map()
map()
یک تابع داخلی در پایتون است که یک تابع را برای همه عناصر در یک تکرار معین اعمال می کند. این امکان را به شما می دهد تا بدون استفاده از حلقه ، کد ساده و تمیز بنویسید.
تابع map()
به شکل زیر می باشد:
map(function, iterable, ...)
این تابع دو استدلال اجباری را می پذیرد:
function
– عملکردی که برای هر عنصر از iterable فراخوانی می شود .iterable
– یک یا چند مورد که از تکرار پشتیبانی می کند. بسیاری از اشیاء داخلی در پایتون ، مانند لیست ها ، دیکشنری ها و tuples، جز iterables هستند.
در پایتون 3 ، map()
یک شی نقشه با اندازه مساوی با موضوع تکرار شونده منتقل می شود. در پایتون 2 ، تابع یک لیست را برمی گرداند.
برای مثال بهتر توضیح دهیم که تابع map()
چگونه کار می کند. بگویید ما یک لیست داریم و ما میخواهیم هر عنصر موجود در لیست را به حروف بزرگ تبدیل کنیم.
یک راه برای انجام این کار استفاده از حلقه for
است:
directions = ["north", "east", "south", "west"]
directions_upper = []
for direction in directions:
d = direction.upper()
directions_upper.append(d)
print(directions_upper)
خروجی:
['NORTH', 'EAST', 'SOUTH', 'WEST']
با تابعmap()
، کد بسیار ساده تر و انعطاف پذیر تر خواهد بود.
def to_upper_case(s):
return s.upper()
directions = ["north", "east", "south", "west"]
directions_upper = map(to_upper_case, directions)
print(list(directions_upper))
از تابع list()
برای تبدیل شی map به list استفاده می کنیم :
خروجی:
['NORTH', 'EAST', 'SOUTH', 'WEST']
اگر تابع برگشتی ساده باشد ، روش دیگر Pythonic استفاده از یک تابع lambda است:
directions = ["north", "east", "south", "west"]
directions_upper = map(lambda s: s.upper(), directions)
print(list(directions_upper))
در اینجا مثال دیگری وجود دارد که نشان می دهد چگونه می توانید لیستی از اعداد مربع را از 1 تا 10 ایجاد کنید:
squares = map(lambda n: n*n , range(1, 11))
print(list(squares))
خروجی:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
range()
دنباله ای از اعداد صحیح را ایجاد می کند.
یک راز بزرگ درمورد 90 % هاستینگ های ایرانی، اورسل کردن بیش از حد است که باعث افت کیفیت سرورها میشود.
وان سرور با ارائه دسترسی های مختلف این امکان را به شما خواهد داد که تمامی منابع سرورتان را مدیریت و بررسی کنید و همچنین با ارائه گارانتی 100% برگشت وجه ریسک خرید شما را به %0 کاهش میدهد.
استفاده از map()
با چند Iterables
شما میتوانید با تابعmap()
تعداد زیادی iterables منتقل کنید. تعداد آرگومانهای ورودی موردنیاز که تابع iterables را می پذیرد باید برابر با تعداد تکرارها باشد.
مثال زیر نحوه انجام ضرب عناصر خرد را در دو لیست نشان می دهد:
def multiply(x, y):
return x * y
a = [1, 4, 6]
b = [2, 3, 5]
result = map(multiply, a, b)
print(list(result))
خروجی:
[2, 12, 30]
همان کد ، اما با استفاده از تابع lambda به این شکل است:
a = [1, 4, 6]
b = [2, 3, 5]
result = map(lambda x, y: x*y, a, b)
print(list(result))
با ارائه چندین iterables ، اندازه خروجی برگشتی برابر با کوتاهترین iterables است.
بیایید مثالی را مشاهده کنیم وقتی که iterables با طول یکسان نیستند:
a = [1, 4, 6]
b = [2, 3, 5, 7, 8]
result = map(lambda x, y: x*y, a, b)
print(list(result))
عناصر اضافی (7 و 8) نادیده گرفته می شوند:
خروجی:
[2, 12, 30]
نتیجه گیری
تابع پایتونmap()
به همراه یک تابع یک شی iterable را می گیرد و آن تابع را برای هر عنصر در iterable اعمال می کند.
لطفا جهت بهبهود کیفیت آموزش های ارسالی، نظرات خود را از طریق کامنت و درج ستاره ارسال کنید
اولین نفر باشید که نظر ارسال میکنید