इटरटूल्स सबसे दिलचस्प पायथन पुस्तकालयों में से एक है। इसमें कार्यात्मक भाषाओं से प्रेरित कार्यों की एक श्रृंखला शामिल है जिनका उपयोग पुनरावृत्तियों के साथ काम करने के लिए किया जाता है।
इस लेख में मैं उनमें से कुछ का उल्लेख करूंगा जिन्होंने मेरा ध्यान सबसे अधिक आकर्षित किया है और जो ध्यान में रखने योग्य हैं ताकि हर बार पहिये का आविष्कार न करना पड़े।
कई बार मैंने अनंत गिनती लागू की है (खैर, यह समाप्त होती है
स्पष्ट रूप से किसी बिंदु पर ब्रेक के साथ) while ट्रू लूप का उपयोग करना। itertools हमें एक बेहतर विकल्प प्रदान करता है:
from itertools import count for i in count(start=2, step=2): if i > 10: break print(i)
2 4 6 8 10
जैसा कि उदाहरण में देखा जा सकता है, यदि यह ब्रेक नहीं होता, तो गिनती अनंत संख्याएं लौटाती। उपरोक्त कोड लगभग इसके बराबर है:
i = 2 while True: if i > 10: break print(i) i = 2
2 4 6 8 10
कुछ बहुत सामान्य करने के लिए एक फ़ंक्शन: आकार n के बैचों में एक स्ट्रीम से डेटा प्राप्त करें। आइए एक उदाहरण देखें:
from itertools import batched sequence = [1, 2, 3, 4, 5, 6, 7] for batch in batched(sequence, 2): # lotes de tamaño 2 print(batch)
(1, 2) (3, 4) (5, 6) (7,)
यह ध्यान दिया जाना चाहिए कि अंतिम बैच का आकार n से कम या उसके बराबर हो सकता है, जैसा कि इस मामले में है। काफी उपयोगी, क्या आपको नहीं लगता?
एक और सरल और उपयोगी कार्य। एक अनुक्रम दिया गया है (वास्तव में, एक पुनरावर्तक दिया गया है), यह हमें जोड़े में इसके तत्व देता है।
आइए इसे एक उदाहरण से बेहतर ढंग से देखें:
from itertools import pairwise sequence = [1, 2, 3, 4, 5, 6, 7] for a, b in pairwise(sequence): print(a, b)
1 2 2 3 3 4 4 5 5 6 6 7
जोड़ियों की संख्या इनपुट अनुक्रम के आकार से एक कम है।
अंत में, इस संक्षिप्त प्रविष्टि के लिए, मैं उत्पाद के बारे में बात करना चाहता हूं, a
कार्टेशियन उत्पाद का कार्यान्वयन।
दो डेटा स्ट्रीम के माध्यम से उस लूप के लिए नेस्टेड को बदलने के लिए उपयोगी:
from itertools import product A = [1, 2, 3] B = [5, 6, 7] for a, b in product(A, B): print(a, b)
1 5 1 6 1 7 2 5 2 6 2 7 3 5 3 6 3 7
एक पैरामीटर प्राप्त होता है जो हमें
का कार्टेशियन उत्पाद बनाने की अनुमति देता है
स्वयं के साथ अनुक्रम:
from itertools import product A = [1, 2, 3] for a1, a2, a3 in product(A, repeat=3): print(a1, a2, a3)
1 1 1 1 1 2 1 1 3 1 2 1 1 2 2 1 2 3 1 3 1 1 3 2 1 3 3 2 1 1 2 1 2 2 1 3 2 2 1 2 2 2 2 2 3 2 3 1 2 3 2 2 3 3 3 1 1 3 1 2 3 1 3 3 2 1 3 2 2 3 2 3 3 3 1 3 3 2 3 3 3
भविष्य की पोस्ट में, मैं इस उपयोगी मॉड्यूल के अन्य कार्यों का उल्लेख करूंगा
पायथन मानक पुस्तकालय। मुझे आशा है कि यह आपके लिए उपयोगी होगा।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3