Categories
কোডিং

পাইথন ডিফ এবং ল্যাম্বডা সিনট্যাক্স এবং পার্থক্য তুলনা

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

def বর্ণনা

প্রথমে একটা উদাহরণ দিই।

def add(x, y):
    return x + y
print(add(3,5))

এখানে ফলাফল:

8

ফাংশনগুলি def কীওয়ার্ড দিয়ে লেখা হয়।

add হল ফাংশনের নাম, এবং পাস করা আর্গুমেন্টগুলি x এবং y হিসাবে সংজ্ঞায়িত করা হয়।

এটির একটি ফাংশন রয়েছে যা দুটি মান যোগ করার ফলাফল প্রদান করে।

আপনি যদি এইভাবে তৈরি অ্যাড ফাংশনে আর্গুমেন্ট হিসাবে 3 এবং 5 পাস করেন তবে আপনি দেখতে পাবেন যে ফলাফল 8।

ল্যাম্বডা বর্ণনা

উপরের মত একই ফাংশন তৈরি করা যাক।

add = lambda x,y: x+y
print(add(2,3))

এখানে ফলাফল:

5

এটি আর্গুমেন্ট হিসাবে x এবং y গ্রহণ করতে ল্যাম্বডা কীওয়ার্ড ব্যবহার করে এবং দুটি মান যোগ করার ফলাফল প্রদান করে।

Lambdas ডিফল্টরূপে নামহীন ফাংশন তৈরি করে।

এবং আপনি এক লাইনে আরও সংক্ষিপ্তভাবে লিখতে পারেন।

এছাড়াও, রিটার্ন কীওয়ার্ড ব্যবহার করবেন না।

এটি একটি ভেরিয়েবলের সাথে বরাদ্দ করে একটি ফাংশনের মতো একইভাবে ব্যবহার করা যেতে পারে।

এটি কিভাবে ব্যবহার করতে

আপনাকে বুঝতে সাহায্য করার জন্য আরেকটি ব্যবহারের উদাহরণ দেখি।

temp = [1,2,3,4,5]
result = list(filter(lambda x:x>2, temp))
print(result)

এখানে ফলাফল:

[3,4,5]

এটি 1 থেকে 5 উপাদান সহ একটি অ্যারে থেকে শুধুমাত্র 2-এর বেশি মান নির্বাচন করতে ফিল্টার পদ্ধতি ব্যবহার করার একটি উদাহরণ।

lambda একটি মান পায়, এটি 2-এর বেশি কিনা তা নির্ধারণ করে এবং সত্য বা মিথ্যা বুলিয়ান মান প্রদান করে।

ফিল্টার পদ্ধতিটি প্রথম আর্গুমেন্টে একটি ল্যাম্বডা এবং দ্বিতীয় আর্গুমেন্টে একটি অ্যারে নির্ধারণ করে।

এটি অ্যারে অতিক্রম করে এবং 2 এর বেশি হলে মান রেখে এবং অন্যথায় বাদ দিয়ে একটি ফলাফল তৈরি করে।

ফিল্টার দ্বারা প্রাপ্ত ফলাফল তালিকা পদ্ধতি সহ একটি অ্যারের আকারে তৈরি করা হয় এবং ফলাফল ভেরিয়েবলে সংরক্ষণ করা হয়।

একটি ফাংশন দিয়ে ঠিক একই ফাংশন তৈরি করা যাক।

temp = [1,2,3,4,5]
def comp(x):
    return x > 2
result = list(filter(comp, temp))
print(result)

এখানে ফলাফল:

[3,4,5]

আপনি কিভাবে এটি বাস্তবায়ন করেন তা কোন ব্যাপার না, কিন্তু এই উদাহরণে, ল্যাম্বডা একটু বেশি সংক্ষিপ্ত, তাই না?

প্রকৃতপক্ষে, আপনি যদি টাইপের একটি ছবি তোলেন, তাহলে def এবং lambda উভয় বাস্তবায়ন ফাংশনের মতোই বেরিয়ে আসে।

অতএব, আপনি এটিকে একটি ধারণা হিসাবে ভাবতে পারেন যে একটি ল্যাম্বডা একটি ফাংশনে অন্তর্ভুক্ত।

উপসংহারে, একটি ফাংশন তৈরি করতে def কীওয়ার্ড ব্যবহার করা ভাল হবে যা পুনরায় ব্যবহার করা প্রয়োজন, এবং আপনি যখন একটি সাধারণ এক-কালীন ফাংশন তৈরি করতে চান তখন ল্যাম্বডা ব্যবহার করতে হবে।

এই পোস্টে 2টি উত্তর আছে৷

এই বিষয় সম্পর্কে শিক্ষিত ব্যক্তিদের দ্বারা আসা কঠিন, যাইহোক, আপনি মনে হচ্ছে আপনি জানেন আপনি কি সম্পর্কে কথা বলছেন! ধন্যবাদ

ভ্রমনের জন্য ধন্যবাদ. আমি আশা করি এই নিবন্ধটি আপনাকে সাহায্য করবে!

মন্তব্য করুন

আপনার ই-মেইল এ্যাড্রেস প্রকাশিত হবে না।

bn_BDবাংলা