मैं कुछ लैम्ब्डा कार्यों को लिख रहा था और इसे समझ नहीं पाया। क्या Python में lambda x: x if (x<3)
जैसे कुछ करने का कोई तरीका है? lambda a,b: a if (a > b) else b
ठीक काम करता है। अब तक lambda x: x < 3 and x or None
मुझे सबसे नज़दीक लगता है।पाइथन लैम्ब्डा के साथ अगर बिना
उत्तर
किसी भी समारोह की तरह लैम्बडा, वापसी मूल्य होना चाहिए।
lambda x: x if (x<3)
काम नहीं करता है क्योंकि यह निर्दिष्ट नहीं करता है कि x<3
नहीं है तो क्या वापस करना है। डिफ़ॉल्ट रूप से कार्यों लौट None
है, तो आप
lambda x: x if (x<3) else None
कर सकता है लेकिन शायद क्या आप देख रहे हैं एक if
शर्त के साथ एक सूची समझ है। उदाहरण के लिए:
In [21]: data = [1, 2, 5, 10, -1]
In [22]: [x for x in data if x < 3]
Out[22]: [1, 2, -1]
lambda x: x if x < 3 else None
के साथ क्या गलत है?
मेरी समझ है कि सूची समझ इस परिदृश्य – zinking
में अधिक उपयुक्त है सवाल यात्रा का उल्लेख नहीं करता है, इसलिए मुझे यकीन है कि तुम क्या मतलब है नहीं कर रहा हूँ। क्या आप विस्तार से समझा सकते हैं? – user4815162342
आप सही हैं, यह शायद अनुमान लगाया गया है। -_- – zinking
ज़ोंबी को पुन: स्थापित करने के लिए खेद है।
मैं एक ही प्रश्न का उत्तर के लिए देख रहा था, और मैंने पाया "फिल्टर" प्रदान की है कि मैं वास्तव में क्या देख रहा था:
>>> data = [1, 2, 5, 10, -1]
>>> filter(lambda x: x < 3, data)
[1, 2, -1]
कार्यान्वयन दोनों 2.x और 3 में एक ही है। एक्स: https://docs.python.org/2/library/functions.html#filter https://docs.python.org/3/library/functions.html#filter
तुम हमेशा सशर्त जांच के लिए 'फिल्टर' को लागू करने की कोशिश कर सकते हैं। मूल रूप से, map()
को पुनरावृत्तियों की हर घटना पर काम करना है, इसलिए यह चुन और चुन नहीं सकता है। लेकिन फिल्टर विकल्पों को कम करने में मदद कर सकता है। उदाहरण के लिए, मैं 1 से 1 9 तक एक सूची बनाता हूं लेकिन के वर्गों के केवल एक संख्या बनाने के लिए चाहता हूं।
x = list(range(1,20))
y = tuple(map(lambda n: n**2, filter(lambda n: n%2==0,x)))
print (y)
- 1. पाइथन प्रकार बिना लैम्ब्डा अभिव्यक्ति
- 2. कैम्बेबल चर के साथ/बिना लैम्ब्डा के बीच हस्ताक्षर अंतर?
- 3. बहुत लंबा अगर पाइथन
- 4. नेस्टेड कक्षाओं के साथ लैम्ब्डा
- 5. परीक्षण अगर सूचियों में पाइथन
- 6. बाहरी पुस्तकालय के बिना पाइथन के साथ सरल बीप खेलें
- 7. पाइथन अगर कथन: झूठी बनाम 0.0
- 8. जावा में पाइथन के लैम्ब्डा कार्यों के लिए समतुल्य?
- 9. सी ++ लैम्ब्डा के साथ आंशिक अनुप्रयोग?
- 10. पाइथन में raw_input डालने के बिना
- 11. शब्दकोश के साथ लैम्ब्डा का उपयोग
- 12. कई बयान के साथ एफ # लैम्ब्डा अभिव्यक्ति
- 13. ptr_fun एक लैम्ब्डा फ़ंक्शन के साथ
- 14. रूबी 1.9 लैम्ब्डा कॉल को ब्रांड्स के सामने डॉट के बिना क्यों संभव नहीं है?
- 15. पाइथन, बिना तर्क के अपवाद को
- 16. मल्टीप्रोसेसिंग के साथ पाइथन सजावट
- 17. पाइथन
- 18. Wget के साथ शैल स्क्रिप्ट - अगर लूप
- 19. पाइथन मुहावरे के बराबर क्लोजर क्या है "अगर __name__ == '__main__'"?
- 20. लैम्ब्डा
- 21. डुप्लिकेट के बिना setuptools के साथ पाइथन क्ली स्क्रिप्ट स्थापित करने के लिए कैसे?
- 22. लैम्ब्डा
- 23. लैम्ब्डा
- 24. पाइथन
- 25. शॉर्ट हाथ अगर बिना किसी बयान
- 26. कक्षाओं के साथ पाइथन कोड धीमा है?
- 27. लैम्ब्डा
- 28. पाइथन लैम्ब्डा फ़ंक्शंस की सूची w/o आंशिक
- 29. पाइथन
- 30. बैश के साथ या और अगर निषेध
@ उबंटू - धन्यवाद। निश्चित नहीं है कि मुझे क्यों लगता है कि इसे निर्दिष्ट किए बिना इसे वापस नहीं करना चाहिए। – root
यह एक उचित धारणा है क्योंकि कार्य डिफ़ॉल्ट रूप से कोई नहीं लौटाता है। याद रखने की महत्वपूर्ण बात यह है कि 'lambda x:' का पालन करने वाला एक * अभिव्यक्ति * होना चाहिए, एक कथन नहीं। – unutbu
@root मुझे कभी-कभी 'लैम्ब्डा' के बारे में सोचने में आसान लगता है, हालांकि इसे वास्तव में 'डीफ लैम्ब्डा (एक्स, वाई) के रूप में लिखा गया है: वापसी ... ' –