मैं एक समारोह है कि एक सूची [1,5,3,6,...]
जान और देता है [1,1,5,5,3,3,6,6,...]
किसी भी विचार कैसे करना है लिखना चाहते हैं? धन्यवादएक सूची में प्रत्येक सदस्य नकल - अजगर
उत्तर
>>> a = [1, 2, 3]
>>> b = []
>>> for i in a:
b.extend([i, i])
>>> b
[1, 1, 2, 2, 3, 3]
या
>>> [a[i//2] for i in range(len(a)*2)]
[1, 1, 2, 2, 3, 3]
आपको पायथन 2 में भी फर्श डिवीजन के लिए '//' का उपयोग करना चाहिए। –
@ माइक: निश्चित रूप से सही है, '/ 'डिवीजन बीमा में पाठ्यक्रम को छोड़कर' int' वापस आ गया है। – SilentGhost
>>> a = range(10)
>>> [val for val in a for _ in (0, 1)]
[0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9]
N.B. _
परंपरागत रूप से प्लेसहोल्डर चर नाम के रूप में उपयोग किया जाता है जहां आप चर की सामग्री के साथ कुछ भी नहीं करना चाहते हैं। इस मामले में यह बाहरी लूप के चारों ओर हर बार दो मान उत्पन्न करने के लिए प्रयोग किया जाता है।
इसे किसी जनरेटर में सूची से बदलने के लिए राउंड ब्रैकेट वाले स्क्वायर ब्रैकेट को प्रतिस्थापित करें।
'_' है, इन दिनों, i18n/l10n (google) के लिए उपयोग किया जाता है। मैं अभी भी इसका उपयोग करता हूं * अगर * मुझे पता है कि इस मॉड्यूल में i18n नहीं होगा। अन्यथा मैं()) '__' (दो अंडरस्कोर) का उपयोग करूंगा। –
मैं का प्रयोग करेंगे
import itertools
foo = [1, 5, 3, 6]
new = itertools.chain.from_iterable([item, item] for item in foo)
new
पुनरावर्तक हो जाएगा कि lazily दोहराया से अधिक आइटम दोहराता। यदि आपको गणना की गई वास्तविक सूची की आवश्यकता है, तो आप list(new)
कर सकते हैं या अन्य समाधानों में से एक का उपयोग कर सकते हैं।
या छोटा: 'itertools.chain.from_iterable (itertools.izip (foo, foo))' –
मैंने उस कोड को छोटा माना जो मेरे लिए स्पष्ट नहीं था। –
आप पहले से ही itertools
के लिए roundrobin
नुस्खा दस्तावेज़ में वर्णित है -और यह काफी है काम-तो आप उपयोग कर सकते हैं
roundrobin(my_list, my_list)
+1, यह इसे पूरा करने का एक अच्छा तरीका है। –
के रूप में ज्यादा गुइडो कार्यात्मक ऑपरेटरों नापसंद के रूप में के लिए, वे सुंदर हो सकता है रफ़ू काम:
>>> from operator import add
>>> a = range(10)
>>> b = reduce(add, [(x,x) for x in a])
कम करने के मामले में, आसान अक्सर आश्चर्यजनक धीमी गति से होता है। यह मापना महत्वपूर्ण है कि 'कम करें' क्या कर रहा है। अक्सर, यह चौंकाने वाला है कि कितना गणना बल को कम करती है। –
मैंने बेसलिस्ट = रेंज (10) और 1,000,000 पुनरावृत्तियों के साथ इस पृष्ठ पर प्रत्येक विधि के साथ एक टेस्ट स्क्रिप्ट बनाई है। सबसे धीमे 5.094 सेकेंड ले गए और सबसे तेज़ 3.622 सेकेंड लगे। मेरा कम उदाहरण 3.906 सेकंड लिया। –
'रेंज (10) 'छोटा है, इसलिए जटिलता एक छोटी भूमिका निभाती है। यह समाधान वर्गबद्ध है; मैं जो अन्य देखता हूं वह रैखिक हैं। इसके अलावा, कुछ अन्य मेरे लिए अधिक पठनीय लगते हैं। –
मैं zip
और itertools.chain
का प्रयोग करेंगे।
>>> import itertools
>>> l = [1,5,3,6,16]
>>> list(itertools.chain(*zip(l,l)))
[1, 1, 5, 5, 3, 3, 6, 6, 16, 16]
नोट: मैं केवल list
इस्तेमाल किया यह मुद्रण के लिए फिट बनाने के लिए जनरेटर का उपभोग करने के। आपको शायद अपने कोड में list
कॉल की आवश्यकता नहीं है ...
यह संभव उपयोग सूची गुणा है। केस आपको प्रत्येक सूची सदस्य को एक साथ क्रमबद्ध विधि का उपयोग करने की आवश्यकता है।
>>> lst = [1,2,3,4]
>>> sorted(lst*2)
[1,1,2,2,3,3,4,4]
क्या आप मूल सूची का ऑर्डर रखना चाहते हैं? अगर सूची में आइटम अपरिवर्तनीय हैं तो क्या होगा? – Moberg
- 1. नकल प्रत्येक पंक्ति
- 2. अजगर, एक सूची
- 3. प्रत्येक पंक्ति में पाठ नकल और यह
- 4. अजगर एक फ्लैट सूची
- 5. एक अजगर सूची
- 6. अजगर की सूची का एक उपवर्ग के रूप में list.insert() विधि नकल
- 7. Django: क्वेरी का उपयोग प्रत्येक सूची में एक सूची में
- 8. अजगर सूची में एक ही संदर्भ
- 9. अजगर os.path.join() एक सूची पर
- 10. पास अजगर सूची बढ़ावा अजगर
- 11. अजगर में सूची से सूची निकालें
- 12. उन्नत अजगर सूची समझ
- 13. अजगर सूची + सूची बनाम list.append()
- 14. का उपयोग अजगर प्रत्येक प्रक्रिया
- 15. सूची के एक सदस्य को सूची के सामने ले जाना
- 16. अजगर, sqlite3 - कैसे एक सूची ब्लॉब सेल
- 17. अजगर सूची comprehensions
- 18. अजगर सूची नहीं संदर्भ
- 19. अजगर - एक धागे पर जाँच/सूची
- 20. अजगर, प्रिंट सीमांकित सूची
- 21. समूहीकरण अजगर टपल सूची
- 22. Convert सूची अजगर
- 23. अजगर सूची समझ सूचियों
- 24. हो जाओ प्रत्येक सूची
- 25. अजगर सूची समझ
- 26. अजगर सूची रोटेशन
- 27. अजगर सूची या tuples
- 28. आप प्रत्येक तत्व को एक सूची में एक सूची में कैसे विभाजित करते हैं?
- 29. अजगर सूची संलग्न व्यवहार
- 30. अजगर गुजर सूची
होमवर्किश लगता है। तत्वों को डुप्लिकेट करने की तुलना में सूची के साथ काम करने के बेहतर तरीके हैं। –