पायथन में जिप फंक्शन का उपयोग कैसे करें

How Use Zip Function Python



यह लेख पायथन के मानक मॉड्यूल पुस्तकालय में उपलब्ध ज़िप फ़ंक्शन पर एक गाइड को कवर करेगा। यह विधि आपको कई चलने योग्य वस्तुओं के तत्वों को संयोजित और युग्मित करने की अनुमति देती है। फिर आप इन जोड़ियों पर और तर्क चला सकते हैं। कई मामलों में, ज़िप फ़ंक्शन का उपयोग करना लूप के लिए कई, नेस्टेड का उपयोग करने की तुलना में बहुत अधिक कुशल और क्लीनर है।

ज़िप फ़ंक्शन के बारे में

जैसा कि पहले कहा गया है, ज़िप फ़ंक्शन का उपयोग कई चलने योग्य वस्तुओं के तत्वों से जोड़े बनाने के लिए किया जाता है। ज़िप फ़ंक्शन के मूल सिंटैक्स और उपयोग को समझने के लिए नीचे दिए गए उदाहरण पर विचार करें:







सूची1= ['प्रति', 'बी', 'सी']
सूची २= ['सेब', 'गेंद', 'बिल्ली']
ज़िपित= ज़िप(सूची1,सूची २)
प्रिंट (सूची(ज़िपित))

उपरोक्त कोड नमूने में पहले दो कथन कुछ तत्वों वाली दो सूचियों को परिभाषित करते हैं। अगला, ज़िप फ़ंक्शन का उपयोग सूची 1 और सूची 2 चर को तर्क के रूप में पास करके किया जाता है। यह ज़िप फ़ंक्शन का मुख्य सिंटैक्स है। आपको केवल सूचियों या अन्य मान्य आदेशित पुनरावृत्तियों को उन तर्कों के रूप में पारित करना होगा जिनके तत्वों को आप संयोजित करना चाहते हैं। अंत में, ज़िप्ड वेरिएबल का आउटपुट प्राप्त करने के लिए प्रिंट स्टेटमेंट का उपयोग किया जाता है। ऊपर उल्लिखित कोड नमूना चलाने के बाद, आपको निम्न आउटपुट प्राप्त करना चाहिए:



[('ए', 'सेब'), ('बी', 'बॉल'), ('सी', 'कैट')]

ध्यान दें कि ज़िप फ़ंक्शन एक ज़िप प्रकार की वस्तु देता है न कि एक सूची। आपको इसे एक चलने योग्य प्रकार में बदलना होगा, जैसा कि ऊपर दिए गए प्रिंट स्टेटमेंट में दिखाया गया है।



सरल शब्दों में, ज़िप फ़ंक्शन दो सूचियों से एक ही इंडेक्स के तत्वों को उठाता है और उन्हें एक जोड़ी के रूप में एक टुपल में जोड़ता है। तो सूची 1 से 0 वें तत्व को सूची 2 के 0 वें तत्व के साथ जोड़ा जाता है, सूची 1 से पहला तत्व सूची 2 के पहले तत्व के साथ जोड़ा जाता है और इसी तरह। ज़िप फ़ंक्शन बाएं से दाएं चलता है और युग्मित तत्वों वाले टपल में वही सूचकांक होता है जो उनमें संग्रहीत तत्वों का होता है।





ज़िप का उपयोग करना जब Iterables में समान तत्वों की संख्या न हो

ऊपर बताए गए उदाहरण में, दोनों सूचियों में समान तत्वों की संख्या है। यदि आप कुछ कोड के साथ काम कर रहे हैं, जहां दोनों सूचियों में समान संख्या में तत्व नहीं हैं, तो ज़िप फ़ंक्शन सूची के अंतिम तत्व पर सबसे कम तत्वों की संख्या में रुक जाएगा।

नीचे दिए गए उदाहरण में, ज़िप फ़ंक्शन c तत्व पर रुक जाएगा, सूची 2 में एक और तत्व होने पर ध्यान दिए बिना।



सूची1= ['प्रति', 'बी', 'सी']
सूची २= ['सेब', 'गेंद', 'बिल्ली', 'गुड़िया']
ज़िपित= ज़िप(सूची1,सूची २)
प्रिंट (सूची(ज़िपित))

ऊपर उल्लिखित कोड नमूना चलाने के बाद, आपको निम्न आउटपुट प्राप्त करना चाहिए:

[('ए', 'सेब'), ('बी', 'बॉल'), ('सी', 'कैट')]

ज़िप फ़ंक्शन का उपयोग करते समय आप दो से अधिक Iterables का उपयोग कर सकते हैं

आमतौर पर, दो चलने योग्य वस्तुओं की तुलना करने के लिए ज़िप फ़ंक्शन का उपयोग किया जाता है। हालाँकि, आप ज़िप फ़ंक्शन के तर्क के रूप में किसी भी संख्या में पुनरावृत्तियों को पारित कर सकते हैं। सबसे छोटी सूची के अंतिम तत्व पर रुकने का सिद्धांत अभी भी लागू रहेगा।

सूची1= ['प्रति', 'बी', 'सी']
सूची २= ['सेब', 'गेंद', 'बिल्ली', 'गुड़िया']
सूची 3= ['5', '3']
ज़िपित= ज़िप(सूची1,सूची २,सूची 3)
प्रिंट (सूची(ज़िपित))

ऊपर उल्लिखित कोड नमूना चलाने के बाद, आपको परिणाम के रूप में निम्न आउटपुट प्राप्त करना चाहिए:

[('ए', 'सेब', '5'), ('बी', 'बॉल', '3')]

एक ज़िप प्रकार वस्तु से अलग-अलग सूचियाँ बनाना

यदि आपके पास पहले से एक ज़िप ऑब्जेक्ट है, तो आप इसका उपयोग उन अलग-अलग सूचियों को फिर से भरने के लिए कर सकते हैं जो पहले ज़िप फ़ंक्शन को पहली बार कॉल किए जाने पर उपयोग की गई थीं।

सूची1= ['प्रति', 'बी', 'सी']
सूची २= ['सेब', 'गेंद', 'बिल्ली', 'गुड़िया']
सूची 3= ['5', '3']
ज़िपित= ज़िप(सूची1,सूची २,सूची 3)
एल1,एल२,एल3= ज़िप(*ज़िप्ड)
प्रिंट (सूची(एल1), सूची(एल२), सूची(एल3))

ऊपर उल्लिखित कोड नमूना चलाने के बाद, आपको परिणाम के रूप में निम्न आउटपुट प्राप्त करना चाहिए:

['ए', 'बी'] ['सेब', 'बॉल'] ['5', '3']

उपरोक्त कोड नमूने में, ज़िप ऑब्जेक्ट को * ऑपरेटर का उपयोग करके डिफ्लेट किया गया है। डिफ्लेटेड परिणाम फिर एक अन्य कॉल में ज़िप फ़ंक्शन में फीड किए जाते हैं जो मूल सूचियां बनाता है। ध्यान दें कि यदि ज़िप ऑब्जेक्ट पहली बार बनाया गया था तो असमान लंबाई की सूचियों का उपयोग किया गया था, तो आपको मूल सूची में सभी तत्व वापस नहीं मिल सकते हैं।

जब आप तत्वों को सबसे लंबे समय तक चलने योग्य से रखना चाहते हैं तो ज़िप का उपयोग करना

ऊपर दिए गए कई उदाहरणों में, आपने देखा होगा कि डिफ़ॉल्ट रूप से ज़िप फ़ंक्शन सबसे छोटे चलने योग्य के अंतिम तत्व पर रुक जाता है। क्या होगा यदि आप इसे तब तक जारी रखना चाहते हैं जब तक कि यह सबसे लंबे समय तक चलने वाले अंतिम तत्व तक न पहुंच जाए?

ऐसी स्थिति में, आपको Python के itertools मॉड्यूल से zip_longest() विधि का उपयोग करना होगा। यह ज़िप फ़ंक्शन के समान ही काम करता है, एक छोटे से अंतर के साथ यह सबसे लंबे चलने योग्य प्रकार के अंतिम तत्व पर रुक जाता है।

से itertools आयातzip_longest
सूची1= ['प्रति', 'बी', 'सी']
सूची २= ['सेब', 'गेंद', 'बिल्ली', 'गुड़िया']
सूची 3= ['5', '3']
ज़िपित=zip_longest(सूची1,सूची २,सूची 3)
प्रिंट (सूची(ज़िपित))

ऊपर उल्लिखित कोड नमूना चलाने के बाद, आपको परिणाम के रूप में निम्न आउटपुट प्राप्त करना चाहिए:

[('ए', 'सेब', '5'), ('बी', 'बॉल', '3'), ('सी', 'कैट', कोई नहीं), (कोई नहीं, 'गुड़िया', कोई नहीं) ]

अनुपलब्ध मान किसी भी प्रकार की ऑब्जेक्ट के रूप में पॉप्युलेट किए जाते हैं। आप zip_longest विधि में एक अतिरिक्त भरण मान तर्क पारित करके भरने के लिए अपना स्वयं का मूल्य भी प्रदान कर सकते हैं।

से itertools आयातzip_longest
सूची1= ['प्रति', 'बी', 'सी']
सूची २= ['सेब', 'गेंद', 'बिल्ली', 'गुड़िया']
सूची 3= ['5', '3']
ज़िपित=zip_longest(सूची1,सूची २,सूची 3,भरण मूल्य='my_value')
प्रिंट (सूची(ज़िपित))

ऊपर उल्लिखित कोड नमूना चलाने के बाद, आपको परिणाम के रूप में निम्न आउटपुट प्राप्त करना चाहिए:

[('ए', 'सेब', '5'), ('बी', 'बॉल', '3'), ('सी', 'कैट', 'माय_वैल्यू'), ('my_value', 'गुड़िया') ', 'my_value')]

निष्कर्ष

कुछ लूप और शर्तों के बयानों का उपयोग करके ज़िप फ़ंक्शन का अनुकरण किया जा सकता है। हालांकि, यह अनावश्यक वाचालता और दोहराव वाले बयानों को हटाकर कोड को व्यवस्थित और साफ रखने में मदद करता है।