"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > itertools की खोज

itertools की खोज

2024-11-07 को प्रकाशित
ब्राउज़ करें:542

Descubriendo itertools

इटरटूल्स सबसे दिलचस्प पायथन पुस्तकालयों में से एक है। इसमें कार्यात्मक भाषाओं से प्रेरित कार्यों की एक श्रृंखला शामिल है जिनका उपयोग पुनरावृत्तियों के साथ काम करने के लिए किया जाता है।

इस लेख में मैं उनमें से कुछ का उल्लेख करूंगा जिन्होंने मेरा ध्यान सबसे अधिक आकर्षित किया है और जो ध्यान में रखने योग्य हैं ताकि हर बार पहिये का आविष्कार न करना पड़े।

गिनती करना

कई बार मैंने अनंत गिनती लागू की है (खैर, यह समाप्त होती है
स्पष्ट रूप से किसी बिंदु पर ब्रेक के साथ) 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

भविष्य की पोस्ट में, मैं इस उपयोगी मॉड्यूल के अन्य कार्यों का उल्लेख करूंगा
पायथन मानक पुस्तकालय। मुझे आशा है कि यह आपके लिए उपयोगी होगा।

विज्ञप्ति वक्तव्य यह लेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/johnnatan_sandovalcardon/descubriendo-itertools-507j?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.com से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3