Categories
कोडन

पायथन डीईएफ़ और लैम्ब्डा सिंटैक्स और अंतर तुलना

आइए दो खोजशब्दों पर एक नज़र डालें जिनके समान कार्य हैं। क्या आपने दो बेकार नहीं बनाए होंगे?

डीईएफ़ विवरण

पहले मैं आपको एक उदाहरण देता हूं।

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

यहाँ परिणाम है:

8

फ़ंक्शन def कीवर्ड के साथ लिखे गए हैं।

ऐड फ़ंक्शन का नाम है, और पारित किए जाने वाले तर्कों को x और y के रूप में परिभाषित किया गया है।

इसमें एक फ़ंक्शन है जो दो मान जोड़ने का परिणाम देता है।

यदि आप इस तरह से बनाए गए ऐड फ़ंक्शन के तर्क के रूप में 3 और 5 पास करते हैं, तो आप देख सकते हैं कि परिणाम 8 है।

लैम्ब्डा विवरण

आइए ऊपर के समान फ़ंक्शन बनाएं।

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

यहाँ परिणाम है:

5

यह x और y को तर्क के रूप में प्राप्त करने के लिए लैम्ब्डा कीवर्ड का उपयोग करता है और दो मानों को जोड़ने का परिणाम देता है।

लैम्ब्डा डिफ़ॉल्ट रूप से अनाम कार्य बनाते हैं।

और आप एक पंक्ति में अधिक संक्षिप्त रूप से लिख सकते हैं।

साथ ही, वापसी कीवर्ड का उपयोग न करें।

इसे उसी तरह से भी इस्तेमाल किया जा सकता है जैसे किसी वेरिएबल को असाइन करके एक फंक्शन।

इसका उपयोग कैसे करना है

आइए समझने में आपकी सहायता के लिए एक और उपयोग उदाहरण देखें।

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

यहाँ परिणाम है:

[3,4,5]

यह 1 से 5 के तत्वों वाले सरणी से केवल 2 से अधिक मानों का चयन करने के लिए फ़िल्टर विधि का उपयोग करने का एक उदाहरण है।

लैम्ब्डा एक मान प्राप्त करता है, यह निर्धारित करता है कि क्या यह 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 और लैम्ब्डा दोनों कार्यान्वयन कार्यों के समान ही सामने आते हैं।

इसलिए, आप इसे एक अवधारणा के रूप में सोच सकते हैं कि एक लैम्ब्डा एक समारोह में शामिल है।

अंत में, एक फ़ंक्शन बनाने के लिए def कीवर्ड का उपयोग करना बेहतर होगा जिसे पुन: उपयोग करने की आवश्यकता है, और लैम्ब्डा का उपयोग करने के लिए जब आप एक साधारण वन-टाइम फ़ंक्शन बनाना चाहते हैं।

इस पोस्ट पर 2 उत्तर हैं।

इस विषय के बारे में शिक्षित लोगों द्वारा आना मुश्किल है, हालांकि, ऐसा लगता है कि आप जानते हैं कि आप किस बारे में बात कर रहे हैं! धन्यवाद

प्रातिक्रिया दे

आपका ईमेल पता प्रकाशित नहीं किया जाएगा.

hi_INहिन्दी