यह दूसरी तरह के आसपास काम करना चाहिए।
अपने अजगर खोल में import this
की कोशिश करो और दूसरी पंक्ति पढ़ें: तो कम से कम एक टिप्पणी जोड़ने के
Explicit is better than implicit
सूची comprehensions की कंपाउंडिंग के इस प्रकार के अजगर प्रोग्रामर का एक बहुत पहेली है समझाने के लिए है कि आप तार हटा रहे हैं और शेष सूची flattening।
सूची समझों का उपयोग करें जहां वे स्पष्ट और समझने में आसान हैं, और विशेष रूप से, जब वे मूर्ख हैं, तो उनका उपयोग करें, यानी आमतौर पर उपयोग किया जाता है क्योंकि वे कुछ व्यक्त करने के लिए सबसे कुशल या सुरुचिपूर्ण तरीका हैं।
result = [3*d.Count for d in data if d.Count > 4]
यह साफ, सरल और सीधा है: उदाहरण के लिए, this Python Idioms article निम्न उदाहरण देता है। यदि आप फ़ॉर्मेटिंग पर ध्यान देते हैं, तो शायद नेस्टिंग सूची की समझ बहुत खराब नहीं है, और शायद एक टिप्पणी जोड़ें क्योंकि ब्रेसिज़ पाठक को अभिव्यक्ति को विघटित करने में मदद करते हैं। लेकिन इस समस्या के लिए स्वीकार किया गया समाधान मेरी राय में बहुत जटिल और भ्रमित है। यह सीमाओं को ओवरस्टेप्स करता है और कोड को बहुत से लोगों के लिए अपठनीय बनाता है। लूप के लिए कम से कम एक पुनरावृत्ति को अनलॉक करना बेहतर है।
स्रोत
2009-11-09 10:07:11
मुझे आपके मामले में x के लिए x की आवश्यकता को समझ में नहीं आता है। परीक्षण में टी के लिए आप बस = [टी [1] का उपयोग क्यों नहीं करते हैं]? – luc
'[टी [1] परीक्षण में टी के लिए] 'tuples की एक सूची वापस कर देगा। '[एक्स में टी के लिए एक्स में परीक्षण के लिए एक्स [1]]' एक फ्लैट सूची (इन tuples का concatenation) है। –