Python တွင် အရာဝတ္ထုများကို ထပ်ခါထပ်ခါလုပ်ဆောင်ရန် map function ကို အသုံးပြုခြင်း
ကျွန်ုပ်တို့တွင် နံပါတ်များကို နှစ်ထပ်ကိန်းတင်ပေးသည့် square function
တစ်ခုရှိသည်ဆိုပါစို့။ ထို့အပြင် အဆိုပါ function ကို ၎င်း၏ အစိတ်အပိုင်းများတွင်
အသုံးပြုရန် လိုအပ်သော စာရင်းတစ်ခုလည်း ရှိပါသည်။
def square(num):
return num ** 2
lst = [2, 3, 6, 8, 15]
Python တွင် ဤပြဿနာကို ဖြေရှင်းရန်၊ အထူး function တစ်ခုဖြစ်သော map ကို
အသုံးပြုနိုင်သည်။
၎င်းသည် function တစ်ခုနှင့် ၎င်း function ကို ၎င်း၏အစိတ်အပိုင်းများတွင် အသုံးပြုရန် လိုအပ်သော
စာရင်းတစ်ခုကို parameter အဖြစ် လက်ခံသည်။
ဥပမာကို ဖြေရှင်းရန် map ကို အသုံးပြုကြည့်ပါစို့။
res = map(square, lst)
print(res)
စာရင်းတစ်ခုစီသည်၊ အခြားရှုပ်ထွေးသော အရာဝတ္ထုတိုင်းကဲ့သို့ပင်၊ Python ၏ system memory အတွင်းတွင် နေရာအများအပြား သိမ်းယူထားသည်။ ထို့ကြောင့် အရင်းအမြစ်များ ချွေတာရန်၊ ကုဒ်စီမံခန့်ခွဲပြီးနောက် စာရင်းအသစ်တစ်ခု ပြန်မပေးဘဲ၊ �ထူး ထပ်ခါထပ်ခါလုပ်ဆောင်နိုင်သော map-အရာဝတ္ထု တစ်ခု ပြန်ပေးမည်ဖြစ်သည်။
<map object at 0x000001F16674BA00>
၎င်းကို loop ဖြင့် ထပ်ခါထပ်ခါလုပ်ဆောင်ကြည့်ပါစို့။
for el in res:
print(el)
ရလဒ်အနေဖြင့် စာရင်းအသစ်၏ အစိတ်အပိုင်းအားလုံး ထုတ်ပြမည်ဖြစ်သည်။
4
9
36
64
225
map-အရာဝတ္ထုမှ စာရင်းအသစ်တစ်ခုကို ဖန်တီးရန်၊ ၎င်းကို function list ကို
အသုံးပြုရန် လိုအပ်သည်။
lst = [2, 3, 6, 8, 15]
res = map(square, lst)
ရလဒ်အနေဖြင့် အောက်ပါစာရင်းကို ထုတ်ပြမည်ဖြစ်သည်။
[4, 9, 36, 64, 225]
ထို့အပြင် map function ဖြင့် အလုပ်လုပ်စဉ်၊
ပထမ parameter တွင် lambda function ကို သတ်မှတ်နိုင်သည်။
ယခင်ဥပမာကို lambda function အသုံးပြု၍ ပြန်ရေးကြည့်ပါစို့။
res = map(lambda num: num ** 2, lst, lst)
print(list(res))
အောက်ပါကုဒ်ကို lambda function မှတစ်ဆင့် ပြန်ရေးပါ။
def func(num):
return num + 1
lst = [1, 2, 3, 4, 5]
res = map(func, lst)
print(list(res))
အောက်ပါကုဒ်ကို lambda function မှတစ်ဆင့် ပြန်ရေးပါ။
def func(txt):
return txt[::-1]
lst = ['123', '456', '789']
res = map(func, lst)
print(list(res))