पायथन में प्रोग्रामिंग करते समय, अब मैं सूची समझों का उपयोग करके map
, lambda
और filter
से बचता हूं क्योंकि इसे निष्पादन में पढ़ने और तेज़ करना आसान है। लेकिन reduce
भी प्रतिस्थापित किया जा सकता है?पायथन: नक्शा, लैम्ब्डा और फिल्टर जैसी सूची समझ में अनुवाद किया जा सकता है?
उदा। किसी ऑब्जेक्ट में ऑपरेटर union()
होता है जो किसी अन्य ऑब्जेक्ट पर काम करता है, a1.union(a2)
, और उसी प्रकार की तीसरी वस्तु देता है।
मैं वस्तुओं की एक सूची है:
L = [a1, a2, a3, ...]
कैसे सूची comprehensions के साथ इन सभी वस्तुओं का मिलन(), के समकक्ष की:
result = reduce(lambda a, b :a.union(b), L[1:], L[0])
कुछ मामलों में: नहीं। लेकिन निर्भर करता है। कृपया एक विशिष्ट क्वेरी प्रदान करें जो आपके दिमाग में है – sshashank124
@ sshashank124 - कोई उदाहरण? – mhawke
सेट यूनियन एक खराब उदाहरण हैं, क्योंकि आप केवल 'परिणाम = सेट()। यूनियन (* एल) 'कर सकते हैं, जिसमें एल एक खाली सूची है, भले ही काम करने का बोनस हो। किसी भी दर पर, 'lambda a, b: a.union (b)' को 'set.union' के रूप में अधिक संक्षेप में लिखा जा सकता है, क्योंकि python 'obj.method (args) में' cls.method (obj) जैसा ही है , तर्क) ' – Eric