tgoop.com/pythonlearnme/186
Create:
Last Update:
Last Update:
✔️ کلاس map
کلاس map
یکی دیگه از تایپهای built-in پایتون است.
این تایپ برای اولین پارامتر یک Callable
دریافت میکنه (مثلا یک تابع یا یک کلاس که داندر ____call____ رو پیادهسازی میکنه) و پارامتر بعدیش تعداد متغیری iterable
هست که بعد از callable
بهش پاس میدیم. signature
عه تابع مپ به این شکل هست:
map(callable, *iterables) —> map objectاما
map
چه کاری انجام میده؟ 🤔اول از همه تایپ مپ درست مانند
range
و فیلتر lazy iterator
هست، یعنی فوری نتایج رو محاسبه نمیکنه،کاری که
map
میکنه اینه که میاد دونه دونه از اون iterable
(یا iterable
هایی) که بهش داده شده، به اون callable
پاس میده و نتیجه ای که اون callable
بهش داده (در واقع مقداری که از callable
ما return
شده) رو هر بار که ما next
میزنیم به ما برمیگردونه!چند مثال کاربردی 🧪
تبدیل همه اعداد یک لیست به مربع خودشان:
lst = [2, 4, 6, 8]Output:
print(list(map(lambda x: x ** 2, lst)))
[4, 16, 36, 64]
تبدیل تمام استرینگهای یک لیست به شکل Uppercase خودشان:lst = ["John", "David", "Mike"]Output:
print(list(map(str.upper, lst)))
['JOHN', 'DAVID', 'MIKE']
نکته مهم ❗️اگر به
map
چند تا iterable
میدید، باید حواستون باشه که اون callable
باید به تعداد iterable
ها پارامتر داشته باشه! مثال:x = list(map(lambda x, y: x + y, [1, 2, 3], [4, 5, 6]))Output:
print(x)
[5, 7, 9]
در مثال بالا دو تا iterable
به مپ پاس دادیم پس باید تابعی که به map
میدیم دوتا آرگومان بگیره. حالا map
میاد پارامتر اول (یعنی x) رو از اولین iterable
و دومی رو (یعنی y) از دومین iterable
میگیره! نکته قابل توجه دیگه اینکه، این فرایند توی تابع (یعنی جمع x و y) به تعداد اعضای کوتاه ترین iterable
انجام میشه! یعنی اگر یکی از iterable
ها 2 عضو داشت و بقیه 5 عضو، فقط روی 2 عضو اول هر iterable
مپ کار انجام میده! مثال:x = list(map(lambda x, y: x + y, [2, 3], [4, 5, 6, 4]))Output:
print(x)
[6, 8]
#builtinsBY 🧑💻PythonDev🧑💻
Share with your friend now:
tgoop.com/pythonlearnme/186