मूल सूची से प्रत्येक नौवें आइटम के साथ एक सूची बनाएं
डेटा विश्लेषण या प्रोग्रामिंग में, अक्सर सबसेट के साथ काम करना आवश्यक होता है एक सूची। एक सामान्य कार्य एक नई सूची बनाना है जिसमें मूल सूची से केवल प्रत्येक नौवां आइटम शामिल हो। उदाहरण के लिए, 0 से 1000 तक पूर्णांकों की एक सूची दी गई है, हम एक ऐसी सूची कैसे प्राप्त कर सकते हैं जिसमें केवल पहला और प्रत्येक बाद का 10 वां आइटम शामिल है?
पारंपरिक लूप का उपयोग करके, हम इस कार्य को निम्नानुसार पूरा कर सकते हैं:
xs = list(range(1001))
new_list = []
for i, x in enumerate(xs):
if i % 10 == 0:
new_list.append(x)
हालाँकि, Python की स्लाइसिंग का उपयोग करके अधिक संक्षिप्त और कुशल दृष्टिकोण उपलब्ध है:
>>> xs = list(range(1001))
>>> new_list = xs[0::10]
इस समाधान में, xs[0::10] एक्सप्रेशन एक नई सूची बनाता है जिसमें इंडेक्स 0 से शुरू होने वाला प्रत्येक 10वां आइटम शामिल होता है। परिणाम एक सूची है जिसमें [0 है , 10, 20, 30, ..., 1000] लूपिंग या सशर्त जांच की आवश्यकता के बिना।
यह विधि लूप की तुलना में काफी तेज है दृष्टिकोण, बड़ी सूचियों से निपटने में लाभप्रद साबित होता है। जैसा कि निम्नलिखित समय तुलना द्वारा प्रदर्शित किया गया है:
$ python -m timeit -s "xs = list(range(1000))" "[x for i, x in enumerate(xs) if i % 10 == 0]"
500 loops, best of 5: 476 usec per loop
$ python -m timeit -s "xs = list(range(1000))" "xs[0::10]"
100000 loops, best of 5: 3.32 usec per loop
स्लाइसिंग का उपयोग करने वाला यह अनुकूलित दृष्टिकोण मूल सूची से प्रत्येक नौवें आइटम के साथ नई सूचियां बनाने के लिए सरलता और प्रदर्शन लाभ दोनों प्रदान करता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3