Python හි වස්තූන් පුනරාවර්තනය කිරීම සඳහා map ශ්රිතය
අපට square ලෙස ශ්රිතයක් ඇතැයි සිතමු
සංඛ්යා වර්ග කිරීම සඳහා. සහ ලැයිස්තුවක් ඇත,
එහි මූලද්රව්ය සඳහා, අදාළ විය යුතුය
මෙම ශ්රිතය:
pythondef square(num):
return num ** 2
lst = [2, 3, 6, 8, 15]
Python හි මෙම ගැටලුව විසඳීම සඳහා, ඔබට
විශේෂ ශ්රිතය map භාවිතා කරන්න.
එය පරාමිති ලෙස ශ්රිතය සහ ලැයිස්තුව පිළිගනී,
එහි මූලද්රව්ය සඳහා එය යොදවිය යුතුය.
අපි map භාවිතා කර උදාහරණය විසඳා ගනිමු:
pythonres = map(square, lst)
print(res)
සෑම ලැයිස්තුවක්ම ඕනෑම සංකීර්ණ වස්තුවක් මෙන් පද්ධති මතකයේ බොහෝ ස්ථානයක් ගන්න Python. එබැවින් සම්පත් ඉතිරි කර ගැනීම සඳහා කේතය ක්රියාත්මක කිරීමෙන් පසු නව ලැයිස්තුව නොවේ, නමුත් විශේෂ පුනරාවර්තනය කළ හැකි map-වස්තුව:
python<map object at 0x000001F16674BA00>
අපි එය ලූපයකින් පුනරාවර්තනය කරමු:
pythonfor el in res:
print(el)
ප්රතිඵලයක් වශයෙන් නව සියලු මූලද්රව්ය ලැයිස්තුව:
python4
9
36
64
225
map-වස්තුවෙන් නව ලැයිස්තුවක් සෑදීමට,
ඔබ එයට list ශ්රිතය යෙදිය යුතුය:
pythonlst = [2, 3, 6, 8, 15]
res = map(square, lst)
ප්රතිඵලයක් වශයෙන් පහත ලැයිස්තුව පෙන්වනු ඇත:
python[4, 9, 36, 64, 225]
එසේම, map ශ්රිතය සමඟ වැඩ කිරීමේදී
පළමු පරාමිතිය ලෙස ඔබට lambda-ශ්රිතය නියම කළ හැකිය.
අපි කලින් උදාහරණය lambda-ශ්රිතය භාවිතා කර නැවත ලියමු:
pythonres = map(lambda num: num ** 2, lst, lst)
print(list(res))
පහත කේතය lambda-ශ්රිතය හරහා නැවත ලියන්න:
pythondef func(num):
return num + 1
lst = [1, 2, 3, 4, 5]
res = map(func, lst)
print(list(res))
පහත කේතය lambda-ශ්රිතය හරහා නැවත ලියන්න:
pythondef func(txt):
return txt[::-1]
lst = ['123', '456', '789']
res = map(func, lst)
print(list(res))