2010-09-24 8 views
101

iterator ऑब्जेक्ट होने के बाद, क्या इटरेटर द्वारा लौटाई गई वस्तुओं की सूची प्राप्त करने के लिए सूची समझ से कुछ तेज, बेहतर या अधिक सही है?एक पुनरावर्तक को सूची में बदलने के लिए सबसे तेज़ तरीका

user_list = [user for user in user_iterator] 
+1

इस के अनुकूलन करने से पहले, सुनिश्चित करें कि आप साबित होता है कि यह वास्तव में अड़चन है कुछ रूपरेखा किया है हो सकता है। –

+1

@ एसएलॉट। मैं आम तौर पर उस रवैये से सहमत हूं लेकिन, इस मामले में, इसे स्टाइलिस्टिक रूप से अनुकूलित किया जाना चाहिए, जो कि पाइथन के साथ अक्सर होता है, इसे गति के लिए अनुकूलित भी करेगा। – aaronasterling

+0

"स्टाइलिस्टिक रूप से अनुकूलित"? –

उत्तर

193
list(your_iterator) 
+4

वास्तव में, लगभग हमेशा थोड़ा तेज़। इसके अलावा, और भी स्पष्ट है। –

+5

@systempuntoout यह पूरी तरह से सी में चलता है। सूची समझ पाइथन में है। बेशक यह तेजी से चलता है। – aaronasterling

+3

मैं अभी भी पूरी तरह से नफरत करता हूं कि अजगर में कोई बेहतर तरीका नहीं है। अभिव्यक्ति के दोनों किनारों को केवल टुकड़ा करने या अनुक्रमित करने में सक्षम होने के लिए यह कठिन है। (पायथन 3 में बहुत आम है, अगर यह ज़िप की शुद्ध अभिव्यक्ति है, या शुद्ध फ़ंक्शन वाला मानचित्र) –