2013-02-13 16 views

उत्तर

13
all(predicate(x) for x in string) 
+0

ही ... और क्योंकि एक) इसे का उपयोग है, यह न केवल कम से कम लेकिन सबसे कुशल एक है एक जनरेटर और बी) 'सभी() 'शॉर्ट-सर्किट, इसलिए पुनरावृत्ति पहले' झूठी 'भविष्यवाणी पर बंद हो जाती है। –

2
all(map(predicate, string)) 

कार्यात्मक रूप @ अबे के जवाब लेकिन नक्शे के साथ बजाय (python3 में भी आलसी)

+0

इस दृष्टिकोण का एक नुकसान यह है कि यदि 'predicate (x) '' x [0]' जैसा कुछ है, तो इस मामले में मानचित्र का उपयोग करने के लिए या तो लैम्ब्डा या ऑपरेटर मॉड्यूल की आवश्यकता होती है। –

+0

सहमत हैं, जब आप भविष्यवाणी नहीं करते हैं तो आपके पास इसका नुकसान होता है (8 अक्षर जोड़ना), लेकिन मानचित्र के आलसी समानांतर कार्यान्वयन के साथ मानचित्र को बदलने का लाभ है (या किसी अन्य कार्यान्वयन) यदि उदाहरण के लिए अनुमान कम्प्यूटेशनल रूप से भारी है। – SlimJim