यह क्या आप के लिए पायथन जनरेटर कार्यों का उपयोग कर सकते हैं का उलटा है ? : अजगर जनरेटर, जनरेटर अभिव्यक्ति, और itertools
मॉड्यूल इन दिनों अजगर की मेरी पसंदीदा विशेषताओं में से कुछ हैं। डेटा के एक बड़े ढेर पर प्रदर्शन करने के लिए संचालन की श्रृंखला स्थापित करते समय वे विशेष रूप से उपयोगी होते हैं - मैं अक्सर DSV फ़ाइलों को संसाधित करते समय उनका उपयोग करता हूं।
तो जब यह एक जनरेटर, या एक जनरेटर अभिव्यक्ति, या एक समारोह का उपयोग करने के लिए एक अच्छा समय नहीं है itertools
?
- जब मैं पसंद किए जाने वाले
zip()
से अधिकitertools.izip()
, या range()
परxrange()
, या[x for x in foo]
खत्म(x for x in foo)
हो गया ?
जाहिर है, हमें अंततः एक जनरेटर को वास्तविक डेटा में "हल" करने की आवश्यकता है, आमतौर पर एक सूची बनाकर या गैर-जनरेटर लूप के साथ उस पर पुनरावृति। कभी-कभी हमें सिर्फ लंबाई जानने की जरूरत होती है। यह वह नहीं है जो मैं पूछ रहा हूं।
हम जनरेटर का उपयोग करते हैं ताकि हम अंतरिम डेटा के लिए नई सूचियों को मेमोरी में असाइन न करें। यह विशेष रूप से बड़े डेटासेट के लिए समझ में आता है। यह छोटे डेटासेट के लिए भी समझ में आता है? क्या ध्यान देने योग्य मेमोरी / सीपीयू ट्रेड-ऑफ है?
मुझे विशेष रूप से दिलचस्पी है अगर किसी ने सूची समझ प्रदर्शन बनाम मानचित्र () और फ़िल्टर () की आंख खोलने की चर्चा के प्रकाश में इस पर कुछ रूपरेखा तैयार की है । (पूरी लिंक )
<5
।