पायथन नेस्टेड डिक्शनरी किसी अन्य डिक्शनरी में एक डिक्शनरी है। यह आपको किसी मौजूदा शब्दकोश में की-वैल्यू मैपिंग संरचना का उपयोग करके डेटा संग्रहीत करने देता है।
जब आप पायथन में शब्दकोशों के साथ काम कर रहे होते हैं, तो आपको ऐसी स्थिति का सामना करना पड़ सकता है जहां एक शब्दकोश में दूसरा शब्दकोश होता है।
डेटा की इस संरचना को अक्सर नेस्टेड डिक्शनरी . के रूप में संदर्भित किया जाता है और पायथन कोड में संभावित उपयोग के मामलों की एक विस्तृत श्रृंखला है।
यह ट्यूटोरियल पायथन नेस्टेड डिक्शनरी की मूल बातें पर चर्चा करेगा। हम कुछ उदाहरणों के माध्यम से चलेंगे ताकि आप सीख सकें कि नेस्टेड शब्दकोश कैसे बनाया और संशोधित किया जाए।
पायथन डिक्शनरी रिफ्रेशर
शब्दकोश पायथन का मानचित्रण डेटा प्रकार है। एक पायथन शब्दकोश बांधता है—या मानचित्र —मूल्यों की कुंजी, और डेटा संग्रहीत करने का एक प्रभावी तरीका प्रदान करते हैं।
जब किसी कुंजी को किसी मान से मैप किया जाता है, तो आप कुंजी को संदर्भित करके उस मान में संग्रहीत डेटा को पुनः प्राप्त कर सकते हैं। तो, एक मायने में, कुंजी एक लेबल की तरह काम करती है। यहां एक शब्दकोश का उदाहरण दिया गया है, जो स्थानीय आइसक्रीम स्टोर, द फ्रोजन स्पून में बेचे जाने वाले आइसक्रीम फ्लेवर की कीमतों को संग्रहीत करता है:
ice_cream_flavors ={ "वनीला":0.50, "चॉकलेट":0.50, "कुकीज़ और क्रीम":0.75, "स्ट्रॉबेरी":0.65, "बटरर्ड पेकान":0.90}
इस डिक्शनरी में चाबियां हमारी आइसक्रीम (यानी "वेनिला") के नाम हैं, और मूल्य प्रत्येक आइसक्रीम के प्रति स्कूप की कीमतें हैं।
पायथन नेस्टेड डिक्शनरी
पायथन नेस्टेड डिक्शनरी एक डिक्शनरी के अंदर डिक्शनरी हैं। उनका उपयोग किसी अन्य शब्दकोश के भीतर शब्दकोश डेटा का प्रतिनिधित्व करने के लिए किया जाता है। आप एक शब्दकोश में जितने चाहें उतने शब्दकोशों को नेस्ट कर सकते हैं।
81% प्रतिभागियों ने कहा कि बूटकैंप में भाग लेने के बाद उन्हें अपनी तकनीकी नौकरी की संभावनाओं के बारे में अधिक आत्मविश्वास महसूस हुआ। आज ही एक बूटकैंप से मिलान करें।
बूटकैंप शुरू करने से लेकर अपनी पहली नौकरी खोजने तक, औसत बूटकैंप ग्रेड ने करियर संक्रमण में छह महीने से भी कम समय बिताया।
नेस्टेड शब्दकोश उपयोगी होते हैं यदि आप एक बड़े शब्दकोश में कई घटक शब्दकोशों को संग्रहीत करना चाहते हैं।
नेस्टेड डिक्शनरी कैसे काम करती है, यह समझाने के लिए आइए एक उदाहरण देखें। मान लीजिए हम एक डिक्शनरी बनाना चाहते हैं जो द फ्रोजन स्पून में बिकने वाली आइसक्रीम के प्रत्येक स्वाद के बारे में शब्दकोशों को संग्रहीत करता है। हमारे बड़े शब्दकोश में प्रत्येक शब्दकोश की सूची होनी चाहिए:
- आइसक्रीम का नाम
- इसकी कीमत
- कितने पिन स्टॉक में हैं
इस डेटा को स्टोर करने वाला नेस्टेड डिक्शनरी इस तरह दिखेगा:
ice_cream_flavors ={ 0:{ "फ्लेवर":"वेनिला", "कीमत":0.50, "पिंट्स":20 }, 1:{ "फ्लेवर":"चॉकलेट", "कीमत":0.50, "पिंट्स" :31 },2:{ "स्वाद":"कुकीज़ और क्रीम", "कीमत":0.75, "पिंट":14 }}
हमारे कोड में, हमने ice_cream_flavors . नामक एक बड़ा शब्दकोश घोषित किया है . इस शब्दकोश में तीन शब्दकोश हैं, जिनमें से प्रत्येक आइसक्रीम के एक विशेष स्वाद के बारे में जानकारी संग्रहीत करता है।
यदि हम एक नेस्टेड डिक्शनरी का उपयोग नहीं करते हैं, तो हमें इनमें से प्रत्येक डिक्शनरी को अलग-अलग वेरिएबल्स में स्टोर करना होगा। यह उल्टा है क्योंकि प्रत्येक शब्दकोश आइसक्रीम के स्वाद के बारे में जानकारी संग्रहीत करता है।
नेस्टेड डिक्शनरी में आइटम एक्सेस करें
नेस्टेड डिक्शनरी में किसी आइटम को एक्सेस करने के लिए, हम इंडेक्सिंग सिंटैक्स का उपयोग कर सकते हैं।
मान लीजिए कि हम अपने शब्दकोश में इंडेक्स वैल्यू 0 के साथ आइसक्रीम की कीमत को पुनः प्राप्त करना चाहते हैं। हम इस कोड का उपयोग करके ऐसा कर सकते हैं:
ice_cream_flavors ={ 0:{ "फ्लेवर":"वेनिला", "कीमत":0.50, "पिंट्स":20 }, 1:{ "फ्लेवर":"चॉकलेट", "कीमत":0.50, "पिंट्स" :31 },2:{ "स्वाद":"कुकीज़ और क्रीम", "कीमत":0.75, "पिंट्स":14 }}प्रिंट (आइसक्रीम_फ्लेवर्स [0] ["कीमत"]) प्रिंट (आइसक्रीम_फ्लेवर्स [0] [" स्वाद"])
हमारा कोड लौटाता है:
0.50वेनिला
इस कोड में, हम सबसे पहले उस आइटम कुंजी को निर्दिष्ट करते हैं जिसका मूल्य हमारे बड़े शब्दकोश में है जिसे हम पुनर्प्राप्त करना चाहते हैं। इस मामले में, हम इंडेक्स मान 0 के साथ रिकॉर्ड तक पहुंचना चाहते थे।
फिर, हम अपने आंतरिक शब्दकोश में उस आइटम का नाम निर्दिष्ट करते हैं जिसे हम पुनर्प्राप्त करना चाहते हैं। इस मामले में, हम अपनी आइसक्रीम की कीमत और स्वाद को पुनः प्राप्त करना चाहते थे। इसलिए, हमने कीमत . निर्दिष्ट की है और स्वाद हमारे दोनों प्रिंट() . में बयान।
नेस्टेड डिक्शनरी पायथन:एलीमेंट जोड़ें
नेस्टेड शब्दकोश में एक तत्व जोड़ने के लिए, हम उसी सिंटैक्स का उपयोग कर सकते हैं जिसका उपयोग हमने किसी आइटम को संशोधित करने के लिए किया था। नेस्टेड डिक्शनरी में आइटम जोड़ने के लिए आपको कोई तरीका नहीं अपनाना चाहिए। आपको असाइनमेंट ऑपरेटर का उपयोग करने की आवश्यकता है।
किसी आइटम को जोड़ने का सिंटैक्स इस प्रकार है:
dictionary_name[new_key_name] =new_value
मान लीजिए कि हमारे पास एक शब्दकोश है जो बिक्री के लिए एक वेनिला आइसक्रीम पर जानकारी संग्रहीत करता है। हम ट्रैक करना चाहते हैं कि आइसक्रीम पर छूट है या नहीं। हम निम्नलिखित कोड का उपयोग करके ऐसा कर सकते हैं:
ice_cream_flavors ={ 0:{ "फ्लेवर":"वेनिला", "कीमत":0.50, "पिंट्स":20 }, 1:{ "फ्लेवर":"चॉकलेट", "कीमत":0.50, "पिंट्स" :31 },2:{ "स्वाद":"कुकीज़ और क्रीम", "कीमत":0.75, "पिंट":14 }}ice_cream_flavors[0]["discount"] =Trueprint(ice_cream_flavors[0])
आइए अपना कोड चलाएं और देखें कि क्या होता है:
{'स्वाद':'वेनिला', 'कीमत':0.5, 'पिंट':20, 'छूट':सच}
हमारा शब्दकोश पायथन वेरिएबल “ice_cream_flavors” में संग्रहित है।
हमने छूट . नामक एक कुंजी जोड़ी है शब्दकोश को। इस कुंजी की अनुक्रमणिका स्थिति 0 है। हम इस कुंजी का मान True पर सेट करते हैं। फिर, हमने अपने ice_cream_flavors में इंडेक्स वैल्यू 0 के साथ डिक्शनरी का प्रिंट आउट लिया। नेस्टेड शब्दकोश। यह दर्शाता है कि हमारी छूट कुंजी जोड़ दी गई है।
मौजूदा शब्दकोश में किसी तत्व को अद्यतन करने के लिए हम इस सिंटैक्स का उपयोग कर सकते हैं। मान लीजिए कि हम अपनी चॉकलेट आइसक्रीम की कीमत $0.45 प्रति स्कूप में बदलना चाहते हैं। हम इस कोड का उपयोग करके ऐसा कर सकते हैं:
ice_cream_flavors ={ 0:{ "फ्लेवर":"वेनिला", "कीमत":0.50, "पिंट्स":20 }, 1:{ "फ्लेवर":"चॉकलेट", "कीमत":0.50, "पिंट्स" :31 },2:{ "स्वाद":"कुकीज़ और क्रीम", "कीमत":0.75, "पिंट":14 }}ice_cream_flavors[1]["price"] =0.45print(ice_cream_flavors[1])पूर्व>हमारा कोड लौटाता है:
{'स्वाद':'चॉकलेट', 'कीमत':0.45, 'पिंट्स':31}हमने कीमत . का मान बदल दिया है हमारी चॉकलेट आइसक्रीम की कुंजी $0.45 होनी चाहिए।
ऐसा करने के लिए, हमने उस शब्दकोश का अनुक्रमणिका मान निर्दिष्ट किया है जिसका कीमत मान हम 1 के रूप में बदलना चाहते थे। इस मान में हमारे शब्दकोश में चॉकलेट आइसक्रीम के बारे में जानकारी है। फिर, हमने कीमत . के लिए एक नया मान निर्दिष्ट किया कुंजी।
नेस्टेड डिक्शनरी पायथन:एलिमेंट हटाएं
नेस्टेड डिक्शनरी में संग्रहीत किसी आइटम को हटाने के लिए, हम del . का उपयोग कर सकते हैं बयान। डेल स्टेटमेंट आपको किसी ऑब्जेक्ट को डिलीट करने देता है। डेल एक पायथन ब्रेक स्टेटमेंट की तरह लिखा जाता है, अपनी लाइन पर, उसके बाद उस डिक्शनरी में आइटम जिसे आप हटाना चाहते हैं।
मान लीजिए कि हम अब अस्थायी रूप से अपने स्टोर पर कुकीज़ और क्रीम आइसक्रीम नहीं दे रहे हैं। कुकीज़ और क्रीम आइसक्रीम को स्टोर करने वाले हमारे फ्रीजर ने काम करना बंद कर दिया और सामान पिघल गया।
हम निम्नलिखित कोड का उपयोग करके इस आइसक्रीम को अपने नेस्टेड शब्दकोश से हटा सकते हैं:
ice_cream_flavors ={ 0:{ "फ्लेवर":"वेनिला", "कीमत":0.50, "पिंट्स":20 }, 1:{ "फ्लेवर":"चॉकलेट", "कीमत":0.50, "पिंट्स" :31 },2:{ "स्वाद":"कुकीज़ और क्रीम", "कीमत":0.75, "पिंट्स":14 }}del Ice_cream_flavors[2]print(ice_cream_flavors)हमारा कोड लौटाता है:
{0:{'स्वाद':'वेनिला', 'कीमत':0.5, 'पिंट्स':20}, 1:{'स्वाद':'चॉकलेट', 'कीमत':0.5, 'पिंट्स':31 }}पूर्व>हमारे कोड में, हमने एक del . का उपयोग किया है हमारे नेस्टेड शब्दकोश में मूल्य को हटाने के लिए बयान जिसकी कुंजी 2 के बराबर थी। जैसा कि आप देख सकते हैं, इसने कुकीज़ और क्रीम के लिए प्रविष्टि को हटा दिया। हमारे नेस्टेड शब्दकोश से।
पायथन नेस्टेड डिक्शनरी के माध्यम से पुनरावृति
अब, मान लीजिए कि हम अपने नेस्टेड डिक्शनरी में प्रत्येक डिक्शनरी की सामग्री को कंसोल पर प्रिंट करना चाहते हैं। हम इस कार्य को कैसे पूरा कर सकते हैं?
यह एक अच्छा सवाल है। अपने नेस्टेड डिक्शनरी की सामग्री को प्रिंट करने के लिए, हम लूप के लिए पायथन का उपयोग करके इसके माध्यम से पुनरावृति कर सकते हैं। हम अपने शब्दकोश में कुंजियों और मूल्यों की सूची को पुनः प्राप्त करने के लिए पायथन डिक्शनरी आइटम्स () पद्धति का भी उपयोग करने जा रहे हैं:
ice_cream_flavors ={ 0:{ "फ्लेवर":"वेनिला", "कीमत":0.50, "पिंट्स":20 }, 1:{ "फ्लेवर":"चॉकलेट", "कीमत":0.50, "पिंट्स" :31 },2:{ "स्वाद":"कुकीज़ और क्रीम", "कीमत":0.75, "पिंट":14 }}कुंजी के लिए, Ice_cream_flavors.items() में मान:प्रिंट ("आइसक्रीम:", कुंजी ) k, v के लिए value.items():print(k + ":", value[k])हमारा कोड लौटाता है:
आइसक्रीम:0फ्लेवर:वैनिलाप्राइस:0.5पिंट्स:20आइसक्रीम:1फ्लेवर:चॉकलेटप्राइस:0.5पिंट्स:31आइसक्रीम:2फ्लेवर:कुकीज और क्रीमकीमत:0.75पिन्ट्स:14आइए हमारे कोड को तोड़ दें। सबसे पहले, हमने आइसक्रीम फ्लेवर के अपने नेस्टेड डिक्शनरी को परिभाषित किया है।
फिर, हमने लूप के लिए परिभाषित किया है जो ice_cream_flavors में प्रत्येक कुंजी और मान के माध्यम से जाता है शब्दकोश। यह लूप .items() . का उपयोग करता है हमारे ice_cream_flavors . में सभी कुंजियों और मूल्यों की सूची बनाने के लिए शब्दकोश, जिस पर लूप पुनरावृति कर सकता है।
फिर, हम आइसक्रीम: . प्रिंट करते हैं उसके बाद एक विशेष आइसक्रीम से जुड़ी कुंजी।
इसके बाद, हम प्रत्येक मान . में प्रत्येक आइटम के माध्यम से लूप से लूप के लिए दूसरे का उपयोग करते हैं हमारे नेस्टेड शब्दकोश में। यह हमारे नेस्टेड शब्दकोश में प्रत्येक आंतरिक प्रविष्टि को संदर्भित करता है (जैसे कि वेनिला और चॉकलेट के लिए)। यह लूप हमारे आंतरिक शब्दकोशों में प्रत्येक कुंजी के नाम को प्रिंट करता है, उसके बाद एक कोलन, फिर उस कुंजी से जुड़े मान को प्रिंट करता है।
निष्कर्ष
नेस्टेड डिक्शनरी आपको पाइथन में डिक्शनरी के अंदर डिक्शनरी स्टोर करने की अनुमति देती है।
इस ट्यूटोरियल में उदाहरणों के संदर्भ में चर्चा की गई कि कैसे:
- नेस्टेड डिक्शनरी बनाएं
- नेस्टेड शब्दकोश में तत्वों को जोड़ें और तत्वों को अपडेट करें
- नेस्टेड शब्दकोश से तत्व निकालें
- नेस्टेड शब्दकोश के माध्यम से पुनरावृति करें
पायथन में कोडिंग के बारे में अधिक जानने के लिए, हमारा हाउ टू कोड इन पायथन गाइड पढ़ें।