Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन क्यू और डी क्यू: एक चरण-दर-चरण मार्गदर्शिका

पायथन क्यू एक बिल्ट-इन लाइब्रेरी है जो आपको एक सूची बनाने की अनुमति देती है जो FIFO नियम, फर्स्ट इन फर्स्ट आउट का उपयोग करती है। पायथन डी क्यू विपरीत नियम, LIFO क्यू, या लास्ट इन फर्स्ट आउट का उपयोग करता है। दोनों स्टैक्स और क्यू पर काम करते हैं।


क्यू प्राइमर

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

क्यू एरे और सूचियों से भिन्न होते हैं क्योंकि क्यू रैंडम एक्सेस नहीं हैं - क्यू में संग्रहीत डेटा का एक विशेष क्रम होता है। इसलिए यदि आप किसी क्यू में कोई आइटम जोड़ना चाहते हैं, तो उसे अंत में जोड़ा जाएगा। इसे first-in, first-out, या संक्षेप में FIFO क्यू कहा जाता है।

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

पायथन क्यू

तो, आप पायथन में क्यू कैसे लागू करते हैं? ऐसा करने के लिए, हमें बिल्ट-इन क्यू लाइब्रेरी का उपयोग करना होगा। क्यू मॉड्यूल में क्यू के लिए कई उपयोगी क्लासेस शामिल हैं, लेकिन इस ट्यूटोरियल के लिए हम queue.Queue क्लास पर ध्यान केंद्रित करने जा रहे हैं।

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

सबसे पहले, हमें अपनी क्यू क्लास को परिभाषित करने की आवश्यकता है। हम इसे निम्न कोड का उपयोग करके कर सकते हैं:

from queue import Queue
waitlist = Queue()

अब हम अपनी क्यू बनाने के लिए तैयार हैं। put() फ़ंक्शन डेटा को क्यू में put करने की अनुमति देता है। नीचे दिए गए कोड में, हम उन पांच लोगों को प्रतीक्षा सूची में जोड़ने जा रहे हैं जिन्होंने अभी फिल्म देखने के लिए साइन अप किया है:

waitlist.put('Erin')
waitlist.put('Samantha')
waitlist.put('Joe')
waitlist.put('Martin')
waitlist.put('Helena')

अब हमने अपनी क्यू में अपने पांच नाम जोड़ दिए हैं। एरिन हमारी क्यू में पहले है, फिर सामंथा, और इसी तरह जब तक हम हेलेना तक नहीं पहुंच जाते, जो अंतिम है। हम इसे get() फ़ंक्शन का उपयोग करके प्रदर्शित कर सकते हैं, जैसे:

print(waitlist.get())

हमारा कोड निम्नलिखित लौटाता है:

Erin

जैसा कि आप देख सकते हैं, एरिन हमारी क्यू में पहली है। यदि हम क्यू में पहले दो नाम प्रिंट करना चाहते थे, तो हम get() फ़ंक्शन का दो बार उपयोग करेंगे:

print(waitlist.get())
print(waitlist.get())

हमारा कोड निम्नलिखित लौटाता है:

Erin
Samantha

पायथन डी क्यू उदाहरण

लेकिन क्या होगा यदि हम अपनी क्यू के किसी भी छोर से कई आइटम जोड़ना और हटाना चाहते हैं? यहीं डी क्यू फ़ंक्शन काम आता है। डी क्यू का उपयोग करके, हम एक डबल-एंडेड क्यू बना सकते हैं जहां हम क्यू की शुरुआत या अंत से तत्व जोड़ और हटा सकते हैं। डी क्यू last-in, first-out, या संक्षेप में LIFO हैं।

आइए ऊपर के समान उदाहरण का उपयोग करें: फिल्म के लिए प्रतीक्षा सूचीबद्ध नाम संग्रहीत करना। सबसे पहले, हम अपना डी क्यू फ़ंक्शन घोषित करेंगे:

from collections import deque
waitlist = deque()

अब हमने अपना डी क्यू इनिशियलाइज़ कर लिया है, हम अपनी प्रतीक्षा सूचीबद्ध नामों की सूची को अपने डी क्यू में जोड़ सकते हैं:

waitlist.append('Erin')
waitlist.append('Samantha')
waitlist.append('Joe')
waitlist.append('Martin')
waitlist.append('Helena')

जैसा कि आप देख सकते हैं, हमने अपनी क्यू में आइटम डालने के लिए append() फ़ंक्शन का उपयोग किया। अपने प्रतीक्षा सूची में संग्रहीत मानों को देखने के लिए, हम निम्न कोड का उपयोग कर सकते हैं:

print(waitlist)

हमारा कोड निम्नलिखित लौटाता है:

deque(['Erin', 'Samantha', 'Joe', 'Martin', 'Helena'])

जैसा कि आप देख सकते हैं, हमारे डेटा को उसी क्रम में संग्रहीत किया गया है जिस क्रम में हमने इसे अपने डी क्यू में डाला था। लेकिन क्या होगा यदि हम अपनी क्यू से पहला आइटम हटाना चाहते हैं? हम इसे पूरा करने के लिए popleft() फ़ंक्शन का उपयोग कर सकते हैं। यहां एक उदाहरण है:

waitlist.popleft()
print(waitlist)

हमारे कोड ने हमारी सूची में पहला आइटम - Erin - हटा दिया है और निम्नलिखित लौटाता है:

deque(['Samantha', 'Joe', 'Martin', 'Helena'])

यदि हम अपने डी क्यू में सभी आइटम हटाना चाहते हैं, तो हम clear() फ़ंक्शन का उपयोग कर सकते हैं:

deque.clear()
print(waitlist)

हमारे कोड का परिणाम इस प्रकार है:

deque([])

जैसा कि आप देख सकते हैं, हमारा डी क्यू खाली है, लेकिन ऑब्जेक्ट अभी भी मौजूद है।

निष्कर्ष

बस! इस लेख में, हमने चर्चा की है कि क्यू एक प्रकार की डेटा संरचना है जो आपको डेटा संग्रहीत करने के लिए फर्स्ट-इन, फर्स्ट-आउट स्टोरेज दृष्टिकोण अपनाने की अनुमति देती है। क्यू का एक उदाहरण उपयोग नए उत्पाद के लिए प्रतीक्षा सूची रखना होगा।

हमने यह भी चर्चा की कि आप डी क्यू का उपयोग करके डबल-एंडेड क्यू कैसे बना सकते हैं जहां आप अपनी क्यू से तत्व जोड़ और हटा सकते हैं। अब आप अपनी खुद की क्वेरीज़ और डी क्यू लिखना शुरू करने के लिए तैयार हैं!

पायथन का उपयोग विभिन्न पेशेवर प्रोग्रामिंग वातावरणों में किया जाता है। आज ही मुफ्त Career Karma ऐप डाउनलोड करें यह जानने के लिए कि पायथन कैसे आपको टेक में अपने सपनों के करियर में प्रवेश करने में मदद कर सकता है!

  1. पायथन इंटरप्रेटर्स: एक चरण-दर-चरण गाइड पायथन इंटरप्रेटर्स: एक चरण-दर-चरण गाइड

    पायथन प्रोग्राम कैसे एक्जीक्यूट होता है? पायथन, जावा की तरह, पूरी तरह से इंटरप्रेटेड भाषा के रूप में वर्गीकृत नहीं किया जा सकता और न ही कंपाइल्ड भाषा के रूप में। यह दोनों का थोड़ा सा है। कंपाइल्ड होने का मतलब इस उदाहरण में है किसी प्लेटफॉर्म पर निर्भर न करने वाली निचले स्तर की भाषा में अनुवादित होन

  1. - पायथन फाइल का नाम बदलें: चरण-दर-चरण गाइड

    पायथन फाइल का नाम बदलें: चरण-दर-चरण गाइड पायथन os.rename() विधि फाइल का नाम बदलती है। os.rename() दो तर्क स्वीकार करती है: पुरानी फाइल का पथ और नई फाइल का पथ। नए फाइल पथ का अंत एक अलग फाइल नाम में होना चाहिए। जब आप पायथन में फाइलों के साथ काम कर रहे होते हैं, तो आप तय कर सकते हैं कि आप किसी विशेष फ

  1. - Python में कुंजियाँ और कमरे

    मान लीजिए हमारे पास N कमरे हैं और हम कमरा 0 से शुरू करते हैं। प्रत्येक कमरे में 0, 1, 2, ..., N-1 में एक विशिष्ट संख्या मौजूद होती है, और प्रत्येक कमरे में अगले कमरे तक पहुँचने के लिए कुछ कुंजियाँ हो सकती हैं। दूसरे शब्दों में, प्रत्येक कमरा i में कुंजियों की सूची rooms[i] होती है, और प्रत्येक कुंजी