मुझे शब्दों की एक सूची लेनी है और इसमें सभी शब्द गिनना है जो 2 या अधिक वर्ण लंबे हैं और जहां पहला और अंतिम वर्ण बराबर है।लूप के लिए सूची समझ और लेन() बनाम सरल
result = 0
for word in words:
if len(word) >= 2 and word[0] == word[-1]:
result += 1
return result
बनाम
return len([word for word in words if len(word) >= 2 and word[0] == word[-1]])
कौन सा पसंदीदा समाधान होगा:
मैं दो संभव समाधान के साथ आया था? या यहां तक कि बेहतर भी हैं?
मैं # 2 लेगा: लेकिन कई लाइनों पर अच्छी तरह से स्वरूपित किया गया। सिर्फ इसलिए कि आप इसे * लिख सकते हैं, इसका मतलब यह नहीं है कि आपको (जेनरेटर या फॉर-कॉम्प आदि के साथ भी) –
कृपया, कृपया, कृपया मापें। इसे मापने के लिए कृपया 'टाइमिट' का उपयोग करें। कृपया परिणामों को मापें और पोस्ट करें। –
@ एसएलओटी: उन्होंने प्रदर्शन के बारे में कुछ भी नहीं कहा। कुछ करने के लिए * पसंदीदा * तरीका कुछ करने के लिए * सबसे तेज़ * तरीका नहीं दर्शाता है। –