কম্পিউটার

পাইথন ল্যাম্বডা ফাংশন:একটি ভূমিকা

পাইথন ল্যাম্বডা ফাংশন হল একক লাইন, বেনামী ফাংশন। পাইথনে ল্যাম্বডা এক্সপ্রেশনগুলি একক লাইন ফাংশনগুলির জন্য দরকারী যেগুলির জন্য কোনও নামের প্রয়োজন নেই, যেমন ফিল্টারিং তালিকা, স্ট্রিং কেস রূপান্তর করা বা একটি সংখ্যা গুণ করা।


আপনি যখন এমন একটি প্রোগ্রাম লিখছেন যা একাধিকবার একই ধরনের কাজ সম্পাদন করবে, তখন আপনার কোডটি পুনরাবৃত্তি করা অব্যবহারিক কারণ এর অর্থ হল যে টাস্ক কীভাবে কাজ করে তা পরিবর্তন করার প্রয়োজন হলে আপনাকে এটির প্রতিটি ঘটনা আপডেট করতে হবে। আপনার কোডবেস যত বড় হবে, এই পরিবর্তনগুলি করতে তত বেশি সময় লাগবে।

সেখানেই ফাংশনগুলি কাজে আসে। পাইথনে, বেনামী ফাংশন নামে একটি বিশেষ ধরনের ফাংশন রয়েছে যা আপনাকে দ্রুত ফাংশন ঘোষণা করতে দেয়:ল্যাম্বডা এক্সপ্রেশন।

পুনরাবৃত্তিমূলক প্রক্রিয়াগুলি স্বয়ংক্রিয় করতে পাইথনে ল্যাম্বডা ফাংশনগুলি কীভাবে ব্যবহার করবেন তা এই নির্দেশিকাটি আলোচনা করবে। আমরা অ্যাকশনে একটি ল্যাম্বডা ফাংশনের দুটি উদাহরণ প্রদান করব যাতে আপনার নিজের লেখার জন্য প্রয়োজনীয় সমস্ত উপকরণ আপনার কাছে থাকবে।

একটি ফাংশন কি?

প্রোগ্রামিংয়ে, একটি ফাংশন হল কোডের একটি ব্লক যা একটি নির্দিষ্ট কাজ সম্পাদন করে।

কোডার ফাংশন ব্যবহার করার একটি বড় কারণ হল তারা তাদের কোডে পুনরাবৃত্তি কমাতে সাহায্য করে। আপনি যদি একটি ফাংশনে একটি প্রক্রিয়া বান্ডিল আপ করেন, আপনি এটিকে আপনার প্রোগ্রামের যেকোনো জায়গায় কল করতে পারেন। আপনাকে আপনার কোড একাধিকবার পুনরাবৃত্তি করতে হবে না।

এটি বিকাশকারীদের আরও রক্ষণাবেক্ষণযোগ্য কোড লিখতে সহায়তা করে। আপনি যদি সেই প্রক্রিয়াটিতে পরিবর্তন করতে চান তবে আপনাকে যা করতে হবে তা হল আপনার ফাংশনটি সংশোধন করা। আপনার প্রোগ্রামে সবেমাত্র কপি এবং পেস্ট করা কোডের একাধিক লাইনে আপনাকে পরিবর্তন করতে হবে না।

পাইথনে একটি ফাংশনের উদাহরণ এখানে দেওয়া হল:

81% অংশগ্রহণকারী বলেছেন যে তারা বুটক্যাম্পে যোগ দেওয়ার পরে তাদের প্রযুক্তিগত কাজের সম্ভাবনা সম্পর্কে আরও আত্মবিশ্বাসী বোধ করেছেন। আজই একটি বুটক্যাম্পের সাথে মিলিত হন৷

গড় বুটক্যাম্প গ্র্যাড একটি বুটক্যাম্প শুরু করা থেকে শুরু করে তাদের প্রথম চাকরি খোঁজা পর্যন্ত ক্যারিয়ারের পরিবর্তনে ছয় মাসেরও কম সময় কাটিয়েছে।

def say_hello(name):
	print("Hello there, " + name)

say_hello("Arthur")

যখন আমরা এই কোডটি চালান, তখন নিম্নলিখিতটি ফিরে আসে:হ্যালো, আর্থার।

যদিও এই ফাংশনগুলি দরকারী, আপনি যদি সহজ কিছু করতে চান যেমন স্ট্রিংগুলির একটি তালিকায় প্রতিটি স্ট্রিং ছোট হাতের অক্ষরে তৈরি করুন, একটি ফাংশন লেখা বেশ ভার্বোস। আপনার কোড কাজ করার জন্য আপনাকে একটি নতুন ফাংশনে একটি নাম বরাদ্দ করতে হবে। সেখানেই ল্যাম্বডা ফাংশন আসে।

ল্যাম্বডা ফাংশন কি?

একটি ল্যাম্বডা ফাংশন হল এক ধরনের ফাংশন যা নাম ছাড়াই সংজ্ঞায়িত করা হয়। এই ফাংশনগুলিকে কখনও কখনও বেনামী ফাংশন বলা হয়, কারণ তাদের কোনও নামের প্রয়োজন নেই। যেখানে আমাদের ফাংশনের আগে থেকে হ্যালো নাম ছিল, এবং "def" ব্যবহার করে সংজ্ঞায়িত করা হয়েছিল, একটি lambda ফাংশনের একটি নাম প্রয়োজন হয় না এবং "lambda" ব্যবহার করে সংজ্ঞায়িত করা হয়।

ল্যাম্বডা ফাংশন ব্যবহার করার প্রধান সুবিধা হল এটি এক লাইনে লেখা যায়। এটি ল্যাম্বডা ফাংশনগুলিকে উপযোগী করে তোলে যদি আপনার একটি দ্রুত প্রক্রিয়া থাকে যা আপনি একাধিকবার সম্পাদন করতে চান। এখানে কয়েকটি উদাহরণ রয়েছে যেখানে একটি ল্যাম্বডা ফাংশন সহায়ক হতে পারে:

  • সংখ্যাকে গুণ করা
  • একটি স্ট্রিংকে বড় বা ছোট হাতের অক্ষরে রূপান্তর করা হচ্ছে
  • একটি তালিকা ফিল্টার করা হচ্ছে

পাইথনে ল্যাম্বডা ফাংশন তৈরি করার জন্য এখানে সিনট্যাক্স রয়েছে:

name = lambda arguments: expression

একটি ল্যাম্বডা ফাংশন দিয়ে আপনি যে আর্গুমেন্ট নির্দিষ্ট করতে পারেন তার সংখ্যা সীমিত নয়। পাইথনে একটি ল্যাম্বডা ফাংশন কীভাবে কাজ করে তা ব্যাখ্যা করার জন্য একটি উদাহরণ দিয়ে চলুন। ধরুন আমরা একটি সংখ্যাকে সাত দিয়ে গুণ করতে চাই। এটি করার জন্য, আমরা নিম্নলিখিত ফাংশনটি ব্যবহার করতে পারি:

def multiply_by_seven(number):
return number * 7

print(multiply_by_seven(2))

যখন আমরা এই কোডটি চালান, নিম্নলিখিতটি ফিরে আসে:14।

যদিও এই কোডটি কাজ করে, এটি ততটা দক্ষ নয় যতটা হতে পারে। আমরা আমাদের ফাংশনের জন্য নাম এবং আর্গুমেন্ট সংজ্ঞায়িত করার জন্য কোডের একটি সম্পূর্ণ লাইন এবং কোডের আরেকটি লাইন গণনা এবং একটি মান ফেরত দিতে ব্যয় করি। আমাদের ফাংশন আরও দক্ষ করতে, আমরা একটি ল্যাম্বডা ফাংশন ব্যবহার করতে পারি।

এখানে একটি ল্যাম্বডা ফাংশন রয়েছে যা উপরের মত একই ক্রিয়া সম্পাদন করে:

multiply_by_seven = lambda n: n * 7

print(multiply_by_seven(2))

আমাদের কোড রিটার্ন করে:14. আপনি দেখতে পাচ্ছেন, আমাদের ফাংশনের আউটপুট একই। পার্থক্য হল যে আমরা একটি নিয়মিত ফাংশনের পরিবর্তে একটি ল্যাম্বডা ফাংশন ব্যবহার করেছি। এক্ষেত্রে:

  • দি ল্যাম্বডা কীওয়ার্ড ইঙ্গিত করে যে আমরা একটি ল্যাম্বডা ফাংশন ঘোষণা করছি
  • n আমাদের ফাংশনের জন্য যুক্তি।
  • n * 7 আমাদের ল্যাম্বডা ফাংশনের জন্য নির্দিষ্ট করা একক অভিব্যক্তি।

ল্যাম্বডা ফাংশন কখন ব্যবহার করা হয়?

পাইথনে ল্যাম্বডা ফাংশনগুলির বিস্তৃত ব্যবহার রয়েছে। আমাদের শেষ উদাহরণে, আমরা দেখিয়েছি কিভাবে আপনি একটি ল্যাম্বডা ফাংশন ব্যবহার করে দুটি সংখ্যাকে গুণ করতে পারেন। তবে, আরও কয়েকটি সাধারণ ব্যবহারের ক্ষেত্রে রয়েছে যা সম্পর্কে আপনার সচেতন হওয়া উচিত।

প্রায়শই, ল্যাম্বডা ফাংশনগুলি বিল্ট-ইন ফাংশনের পাশাপাশি ব্যবহার করা হয় যেমন reduce() ফাংশন, map() ফাংশন বা filter() ফাংশন Lambda ফাংশনগুলি কখনও কখনও পুনরাবৃত্তিমূলক কাজগুলি সম্পাদন করতে তালিকা বোঝার সাথে ব্যবহার করা হয়।

ধরা যাক আমরা একটি বেকারির মালিক এবং আমরা বিক্রি করা সমস্ত বেকড পণ্যের তালিকার উপর ভিত্তি করে আমরা যে সমস্ত পাই বিক্রি করি তার একটি তালিকা তৈরি করতে চাই। আমরা এই কোডটি ব্যবহার করে তা করতে পারি:

baked_goods = ['Blondie', 'Chocolate Chip Cookie', 'Apple Pie', 'Pecan Pie', 'Blackberry Pie', 'Scone']

pies = filter(lambda pie: "Pie" in pie, baked_goods)

print(list(pies))

আমাদের কোড ফিরে আসে:

['Apple Pie', 'Pecan Pie', 'Blackberry Pie']

আসুন এটি কীভাবে কাজ করে তা ভেঙে দেওয়া যাক। আমাদের কোডের প্রথম লাইনে, আমরা বেকড পণ্যের একটি তালিকা ঘোষণা করেছি। তারপর, আমরা filter() ব্যবহার করেছি "পাই" শব্দটি ধারণকারী সমস্ত বেকড পণ্যগুলিকে ফিল্টার করার ফাংশন। filter() ফাংশন আমাদেরকে "বেকড_গুডস" তালিকার প্রতিটি আইটেমের মাধ্যমে পুনরাবৃত্তি করতে এবং একটি নির্দিষ্ট মানদণ্ড পূরণ করে না এমন আইটেমগুলিকে ফিল্টার করার অনুমতি দেয়।

আমরা একটি ল্যাম্বডা ফাংশন সংজ্ঞায়িত করে এটি করেছি যা প্রতিটি স্ট্রিংটিতে "পাই" রয়েছে কিনা তা পরীক্ষা করে এবং যদি সেই স্ট্রিংটিতে "পাই" থাকে তবেই স্ট্রিংটি ফেরত দেয়। এই ক্ষেত্রে, আমাদের ল্যাম্বডা ফাংশন হল:

lambda pie: "Pie" in pie

আপনি এই উদাহরণ থেকে দেখতে পারেন যে পাইথন ল্যাম্বডা ফাংশনগুলির একটি নামের প্রয়োজন নেই। ঐতিহ্যগত ফাংশন থেকে ভিন্ন, তারা ইন-লাইন থাকতে পারে। যদি একটি আইটেম আমাদের মানদণ্ড পূরণ করে, আমাদের Lambda অভিব্যক্তি সত্য ফিরে আসে; অন্যথায়, কোন মান ফেরত দেওয়া হয় না।

অবশেষে, আমরা ভেরিয়েবল "পাই" কে একটি তালিকায় রূপান্তর করি এবং কনসোলে প্রিন্ট করি। আমরা এটা করি কারণ filter() একটি কাস্টম ফিল্টার অবজেক্ট ফেরত দেয়, তাই আমাদের পাই দেখার জন্য, আমাদের এটিকে list() ব্যবহার করে রূপান্তর করতে হবে .

উপসংহার

Lambda ফাংশন, এছাড়াও বেনামী ফাংশন হিসাবে পরিচিত, আপনি একটি নাম ছাড়া একটি ফাংশন সংজ্ঞায়িত করতে অনুমতি দেয়. আপনার কোডে একাধিকবার কোনো অ্যাকশন সঞ্চালনের প্রয়োজন হলে এগুলি কার্যকর।

উদাহরণস্বরূপ, যদি আপনার একটি সংখ্যাকে অন্য সংখ্যা দ্বারা গুণ করতে হয়, আপনি একটি ল্যাম্বডা ফাংশন ব্যবহার করতে পারেন; অথবা আপনি একটি তালিকার আইটেমগুলিকে ফিল্টার করার জন্য একটি ল্যাম্বডা ফাংশন ব্যবহার করতে পারেন।


  1. পাইথনে ল্যাম্বডা সহ Tkinter বোতাম কমান্ড

  2. পাইথনে বেনামী ফাংশন

  3. পাইথনে issubset() ফাংশন

  4. ইন্টারসেকশন() ফাংশন পাইথন