পাইথনে অবজেক্ট ইটারেশনের জন্য map ফাংশন
ধরুন আমাদের কাছে সংখ্যাকে বর্গ করতে square নামে একটি ফাংশন আছে। এবং একটি তালিকা আছে, যার উপাদানগুলির উপর এই ফাংশনটি প্রয়োগ করতে হবে:
def square(num):
return num ** 2
lst = [2, 3, 6, 8, 15]
পাইথনে এই সমস্যাটি সমাধান করতে, আপনি একটি বিশেষ ফাংশন map ব্যবহার করতে পারেন। এটি একটি ফাংশন এবং একটি তালিকা作为参数 নেয়, যার উপাদানগুলির উপর এটিকে প্রয়োগ করতে হবে। আসুন উদাহরণটি সমাধান করতে map ব্যবহার করি:
res = map(square, lst)
print(res)
প্রতিটি তালিকা, যেকোনো জটিল অবজেক্টের মতো, পাইথনের সিস্টেম মেমরিতে অনেক জায়গা নেয়। তাই সম্পদ সাশ্রয়ের জন্য, কোড 실행 করার পরে একটি নতুন তালিকা ফেরত দেওয়া হবে না, বরং একটি বিশেষ ইটারেবল map-অবজেক্ট ফেরত দেওয়া হবে:
<map object at 0x000001F16674BA00>
আসুন এটিকে একটি লুপ দিয়ে ইটারেট করি:
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 ফাংশন নিয়ে কাজ করার সময়, প্রথম প্যারামিটারে আপনি একটি ল্যাম্বডা-ফাংশন নির্দিষ্ট করতে পারেন। আসুন ল্যাম্বডা-ফাংশন ব্যবহার করে আগের উদাহরণটি পুনরায় লিখি:
res = map(lambda num: num ** 2, lst, lst)
print(list(res))
নিম্নলিখিত কোডটি ল্যাম্বডা-ফাংশন দিয়ে পুনরায় লিখুন:
def func(num):
return num + 1
lst = [1, 2, 3, 4, 5]
res = map(func, lst)
print(list(res))
নিম্নলিখিত কোডটি ল্যাম্বডা-ফাংশন দিয়ে পুনরায় লিখুন:
def func(txt):
return txt[::-1]
lst = ['123', '456', '789']
res = map(func, lst)
print(list(res))