Функсияи map барои такроркунии объектҳо дар Python
Фарз мекунем, ки мо функсияи square барои
чандҷабҳа кардани рақамҳо дорем. Ва як рӯйхат дорем,
ки ба элементҳои он бояд ин функсияро
татбиқ кунем:
def square(num):
return num ** 2
lst = [2, 3, 6, 8, 15]
Дар Python барои ҳалли ин масъала, метавон
аз функсияи махсуси map истифода бурд.
Он функсия ва рӯйхатеро қабул мекунад,
ки ба элементҳои он функсияро татбиқ кардан лозим аст.
Биёед аз map барои ҳалли
мисол истифода барем:
res = map(square, lst)
print(res)
Ҳар як рӯйхат ҳамчуни ҳар як объекти мураккаб масоҳати зиёде дар хотираи системии Python ишғол мекунад. Аз ин рӯ барои ҳифзи сарватҳо пас аз иҷрои рамз рӯйхати нав бар намегардад, балки як объекти takrorӣ-и map:
<map object at 0x000001F16674BA00>
Биёед онро бо ҳалқа takror кунем:
for el in res:
print(el)
Дар натиҷа ҳамаи элементҳои рӯйхати нав ба намоиш гузошта мешаванд:
4
9
36
64
225
Барои эҷоди як рӯйхати нав аз объекти map,
бояд ба он функсияи list-ро татбиқ кард:
lst = [2, 3, 6, 8, 15]
res = map(square, lst)
Дар натиҷа рӯйхати зерин ба намоиш гузошта мешавад:
[4, 9, 36, 64, 225]
Ҳамчунин дар кор бо функсияи map дар
параметри аввал метавон функсияи lambda-ро муайян кард.
Биёед мисоли қаблӣ бо
кӯмаки функсияи lambda аз нависем:
res = map(lambda num: num ** 2, lst, lst)
print(list(res))
Рамзи зеринро бо кӯмаки функсияи lambda аз нависед:
def func(num):
return num + 1
lst = [1, 2, 3, 4, 5]
res = map(func, lst)
print(list(res))
Рамзи зеринро бо кӯмаки функсияи lambda аз нависед:
def func(txt):
return txt[::-1]
lst = ['123', '456', '789']
res = map(func, lst)
print(list(res))