मैं एक सूची समझ में एक मूल्य बनाना चाहता हूं, लेकिन उस मूल्य पर फ़िल्टर भी करना चाहता हूं। उदाहरण के लिए:किसी स्थिति का उपयोग करने के लिए पाइथन सूची समझ से लौटाए गए मूल्य को कैप्चर करना संभव है?
[expensive_function(x) for x in generator where expensive_function(x) < 5]
मैं expensive_function
यात्रा प्रति दो बार फोन करने से बचना चाहते हैं।
generator
एक अनंत श्रृंखला वापस कर सकता है, और सूची की समझ का आलस्य मूल्यांकन नहीं किया जाता है। तो यह काम करेगा नहीं:
[y in [expensive_function(x) for x in generator where expensive_function(x)] where y < 5]
मैं इस एक और तरीका लिख सकता है, लेकिन यह सही एक सूची समझ के लिए लगता है और मुझे यकीन है कि यह एक आम उपयोग पैटर्न है कर रहा हूँ (संभव है या नहीं!)।
क्या उत्तर में से कोई भी उत्तर स्वीकार करने योग्य है? यदि नहीं, तो आप अभी भी किस जानकारी की तलाश में हैं? –
क्षमा करें इसे चिह्नित करने के लिए भूल गए। आपके उत्तर के लिए धन्यवाद! – Joe
कोई समस्या नहीं है। उम्मीद कर रहा था कि आपको सिर्फ एक अनुस्मारक की आवश्यकता है। :) –