PYTHONLEARNME Telegram 186
✔️ کلاس 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]
print(list(map(lambda x: x ** 2, lst)))

Output: [4, 16, 36, 64]

تبدیل تمام استرینگ‌های یک لیست به شکل Uppercase خودشان:

lst = ["John", "David", "Mike"]
print(list(map(str.upper, lst)))

Output: ['JOHN', 'DAVID', 'MIKE']

نکته مهم ❗️

اگر به map چند تا iterable میدید، باید حواستون باشه که اون callable باید به تعداد iterableها پارامتر داشته باشه! مثال:


x = list(map(lambda x, y: x + y, [1, 2, 3], [4, 5, 6]))
print(x)

Output: [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]))
print(x)

Output: [6, 8]

#builtins
🔥1



tgoop.com/pythonlearnme/186
Create:
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]
print(list(map(lambda x: x ** 2, lst)))

Output: [4, 16, 36, 64]

تبدیل تمام استرینگ‌های یک لیست به شکل Uppercase خودشان:

lst = ["John", "David", "Mike"]
print(list(map(str.upper, lst)))

Output: ['JOHN', 'DAVID', 'MIKE']

نکته مهم ❗️

اگر به map چند تا iterable میدید، باید حواستون باشه که اون callable باید به تعداد iterableها پارامتر داشته باشه! مثال:


x = list(map(lambda x, y: x + y, [1, 2, 3], [4, 5, 6]))
print(x)

Output: [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]))
print(x)

Output: [6, 8]

#builtins

BY 🧑‍💻PythonDev🧑‍💻


Share with your friend now:
tgoop.com/pythonlearnme/186

View MORE
Open in Telegram


Telegram News

Date: |

Don’t publish new content at nighttime. Since not all users disable notifications for the night, you risk inadvertently disturbing them. Your posting frequency depends on the topic of your channel. If you have a news channel, it’s OK to publish new content every day (or even every hour). For other industries, stick with 2-3 large posts a week. Find your optimal posting schedule and stick to it. The peak posting times include 8 am, 6 pm, and 8 pm on social media. Try to publish serious stuff in the morning and leave less demanding content later in the day. Some Telegram Channels content management tips Telegram offers a powerful toolset that allows businesses to create and manage channels, groups, and bots to broadcast messages, engage in conversations, and offer reliable customer support via bots.
from us


Telegram 🧑‍💻PythonDev🧑‍💻
FROM American