Python တွင် အရာဝတ္ထုများကို ထပ်ခါထပ်ခါလုပ်ဆောင်ရန် map function ကို အသုံးပြုခြင်း

ကျွန်ုပ်တို့တွင် နံပါတ်များကို နှစ်ထပ်ကိန်းတင်ပေးသည့် square function တစ်ခုရှိသည်ဆိုပါစို့။ ထို့အပြင် အဆိုပါ function ကို ၎င်း၏ အစိတ်အပိုင်းများတွင် အသုံးပြုရန် လိုအပ်သော စာရင်းတစ်ခုလည်း ရှိပါသည်။

pythondef square(num):
  return num ** 2

lst = [2, 3, 6, 8, 15]

Python တွင် ဤပြဿနာကို ဖြေရှင်းရန်၊ အထူး function တစ်ခုဖြစ်သော map ကို အသုံးပြုနိုင်သည်။ ၎င်းသည် function တစ်ခုနှင့် ၎င်း function ကို ၎င်း၏အစိတ်အပိုင်းများတွင် အသုံးပြုရန် လိုအပ်သော စာရင်းတစ်ခုကို parameter အဖြစ် လက်ခံသည်။ ဥပမာကို ဖြေရှင်းရန် map ကို အသုံးပြုကြည့်ပါစို့။

pythonres = map(square, lst)
print(res)

စာရင်းတစ်ခုစီသည်၊ အခြားရှုပ်ထွေးသော အရာဝတ္ထုတိုင်းကဲ့သို့ပင်၊ Python ၏ system memory အတွင်းတွင် နေရာအများအပြား သိမ်းယူထားသည်။ ထို့ကြောင့် အရင်းအမြစ်များ ချွေတာရန်၊ ကုဒ်စီမံခန့်ခွဲပြီးနောက် စာရင်းအသစ်တစ်ခု ပြန်မပေးဘဲ၊ �ထူး ထပ်ခါထပ်ခါလုပ်ဆောင်နိုင်သော map-အရာဝတ္ထု တစ်ခု ပြန်ပေးမည်ဖြစ်သည်။

python<map object at 0x000001F16674BA00>

၎င်းကို loop ဖြင့် ထပ်ခါထပ်ခါလုပ်ဆောင်ကြည့်ပါစို့။

pythonfor el in res:
  print(el)

ရလဒ်အနေဖြင့် စာရင်းအသစ်၏ အစိတ်အပိုင်းအားလုံး ထုတ်ပြမည်ဖြစ်သည်။

python4
9
36
64
225

map-အရာဝတ္ထုမှ စာရင်းအသစ်တစ်ခုကို ဖန်တီးရန်၊ ၎င်းကို function list ကို အသုံးပြုရန် လိုအပ်သည်။

pythonlst = [2, 3, 6, 8, 15]
res = map(square, lst)

ရလဒ်အနေဖြင့် အောက်ပါစာရင်းကို ထုတ်ပြမည်ဖြစ်သည်။

python[4, 9, 36, 64, 225]

ထို့အပြင် map function ဖြင့် အလုပ်လုပ်စဉ်၊ ပထမ parameter တွင် lambda function ကို သတ်မှတ်နိုင်သည်။ ယခင်ဥပမာကို lambda function အသုံးပြု၍ ပြန်ရေးကြည့်ပါစို့။

pythonres = map(lambda num: num ** 2, lst, lst)
print(list(res))
Задание 1

အောက်ပါကုဒ်ကို lambda function မှတစ်ဆင့် ပြန်ရေးပါ။

pythondef func(num):
  return num + 1

lst = [1, 2, 3, 4, 5]
res = map(func, lst)
print(list(res))
Задание 2

အောက်ပါကုဒ်ကို lambda function မှတစ်ဆင့် ပြန်ရေးပါ။

pythondef func(txt):
  return txt[::-1]

lst = ['123', '456', '789']
res = map(func, lst)
print(list(res))