Python में List Comprehensions बनाम Traditional Loops
Python आपको कम कोड के साथ अधिक काम करने की सुविधा देता है।
ऐसा करने का एक तरीका list comprehensions है।
कई डेवलपर्स सोचते हैं: क्या छोटा कोड हमेशा बेहतर होता है? क्या आपको हर loop को comprehension से बदल देना चाहिए?
यहाँ बताया गया है कि आप कैसे चुनाव करें।
Traditional Loops
Traditional loops कदम-दर-कदम (step by step) काम करते हैं।
- एक खाली list बनाएँ
- डेटा के माध्यम से iterate करें
- एक गणना (calculation) करें
- परिणाम को append करें
Loops का उपयोग तब करें जब:
- आपका logic जटिल हो
- आपको कई चरणों को debug करने की आवश्यकता हो
- आपको printing या logging जैसे side effects करने की आवश्यकता हो
- आपके पास कई nested conditions हों
Loops आपके उद्देश्य (intent) को स्पष्ट करते हैं। वे अन्य डेवलपर्स को बिना किसी भ्रम के आपके कोड को पढ़ने में मदद करते हैं।
List Comprehensions
एक list comprehension वही काम एक ही लाइन में कर देता है।
- यह iteration और transformation को जोड़ता है
- यह तुरंत एक नया collection बना देता है
- यह आमतौर पर loop से तेज़ होता है
Comprehensions का उपयोग तब करें जब:
- कार्य एक सरल transformation हो
- आप एक condition के आधार पर list को filter कर रहे हों
- आप सरल कार्यों के लिए साफ और संक्षिप्त (concise) कोड लिखना चाहते हों
Data cleaning और बुनियादी गणित (basic math) के लिए comprehensions कुशल होते हैं।
अंतर (Differences)
• कोड की लंबाई: Comprehensions छोटे होते हैं। Loops लंबे होते हैं। • परफॉरमेंस: Internal optimization के कारण comprehensions अक्सर तेज़ होते हैं। • पठनीयता (Readability): सरल कार्यों के लिए comprehensions बेहतर हैं। जटिल logic के लिए loops बेहतर हैं। • लचीलापन (Flexibility): multi-step प्रक्रियाओं के लिए loops कहीं अधिक लचीलापन प्रदान करते हैं।
एक संतुलित दृष्टिकोण (A Balanced Approach)
यदि comprehension कोड को पढ़ने में कठिन बनाता है, तो उसे ज़बरदस्ती इस्तेमाल न करें।
यदि आप तीन या अधिक conditions के साथ comprehension लिख रहे हैं, तो रुक जाएँ। इसके बजाय एक traditional loop का उपयोग करें।
पहले इंसानों के लिए कोड लिखें। परफॉरमेंस के लिए कोड दूसरे नंबर पर लिखें।
स्रोत: https://dev.to/shalinivemuri/list-comprehensions-vs-traditional-loops-in-python-4f6n
वैकल्पिक लर्निंग कम्युनिटी: https://t.me/GyaanSetuAi