इस सवाल का पहले से ही एक उत्तर है: < / P>
- 23 उत्तर
- 35 जवाब
मुझे लगता है कि मुझे कुछ स्पष्ट नहीं है, लेकिन यह है ... मैं यहां से जाना चाहूंगा: < पूर्व>
lst = [[0, 1, 3, 7, 8, 11, 12], [8, 0, 1, 2, 3, 14], 2]
करने के लिए: <पूर्व>
आउटपुट = [0, 1, 3, 7, 8, 11, 12, 8, 0, 1, 2, 3, 14, 2]
मैं ऐसा लूप के लिए कर सकता हूँ जैसे:
आउटपुट = [] के लिए l में: l if: (ifs, '__iter__'): output.extend (l ) अन्य: output.append (l)
हो सकता है कि for-loop ठीक है, लेकिन ऐसा लगता है कि ऐसा करने के लिए एक और शानदार तरीका होना चाहिए ... इसे करने की कोशिश अंडाकार लगता है और भी जटिल हो जाता है क्योंकि खूनी सरणियों को आसानी से नियंत्रित नहीं किया जाता है ... ताकि आप (उदाहरण के लिए) नहीं कर सकते हैं:
अपडेट करें:
यहां @ टीजे और @ अश्विनी द्वारा प्रदान की गई दोनों विधियों के बीच मेरी तुलना है - दोनों के लिए धन्यवाद!
में [5]:% संग्रह एलईएस == [[0, 1, 3, 7, 8, 11, 12], [8, 0, 1, 2, 3, 14], 2] डीईफ़ हल (एलआईएस): एक्स में एलिस: if वसूली (एक्स, इटेरेबल) नहीं है और नहीं है (एक्स, बेस्टस्ट्रिंग): उपज एक्स और: उपज [x]% समय सूची (चेन। फ्रॉम_इटरएबल (हल (लीज़)))% समय [एक एक्स में एक्स के लिए (x यदि आईस्टेंस (एक्स, इटेरेबल) नहीं है और नहीं है (एक्स, बेसस्ट्रेस) और [x])] # # - चिपकाए टेक्स्ट समाप्त करें - 100000 छोरों, सर्वोत्तम 3: 10.1 हमें प्रति पाश 100000 छोरों, सर्वोत्तम 3: 8.12 प्रति लूप
Update2:
... lis = lis * 10 ** 5% समय सूची (श्रृंखला.प्रकाशित (एलआईएस (हल) () () () (एक्स, बेस्टस्ट्रिंग) और [एक्स])] # # - # चिपकाया टेक टी - 1 छोरों, सबसे अच्छा 3: 69 9 एमएस प्रति पाश 1 छोरों, सबसे अच्छा 3: 698 एमएस प्रति लूप
यहां एक बहुत सरल दृष्टिकोण है जो एक सूची समझ का उपयोग करता है:
> gt; & gt; डेटा = [[0, 1, 3, 7, 8, 11, 12], [8, 0, 1, 2, 3, 14], 2]> gt; & gt; & gt; [एक में x के लिए डेटा में एक्स (यदि एक्सपॉन्स (एक्स, लिस्ट) अन्य [x])] [0, 1, 3, 7, 8, 11, 12, 8, 0, 1, 2, 3, 14 , 2]
यहाँ तुलना की समय है, ऐसा लगता है कि मेरे संस्करण थोड़ा तेज है (ध्यान दें कि मैंने अपने कोड को
collections.Iterable का उपयोग करने के लिए संशोधित किया है सुनिश्चित करें कि तुलना उचित है):
में [9]:% timeit सूची (श्रृंखला (फ्रेम) (उत्तर (समाधान)) 100000 छोरों, सर्वोत्तम 3: 9.22 हमें प्रति लूप में [10 ]:% (एक एक्स के लिए डेटा में एक्स के लिए एक्स के लिए) एक्स [ifinstance (एक्स, Iterable) अन्य [x])] 100000 loops, 3 का सर्वोत्तम: 6.45 हमें प्रति लूप
- 35 जवाब
No comments:
Post a Comment