विज्ञापन
एक अजगर शब्दकोश एक डेटा संरचना है जो अन्य प्रोग्रामिंग भाषाओं में पाए जाने वाले साहचर्य सरणी के समान है। एक सरणी या सूची स्थिति द्वारा तत्वों को अनुक्रमित करती है। दूसरी ओर एक शब्दकोश, तत्वों को अनुक्रमित करता है चांबियाँ जो तार हो सकता है। एक शब्दकोश के बारे में सोचें जो कि बिना तय किए सेट के रूप में है मौलिक मूल्य जोड़े।
इस लेख में, हम आपको अजगर शब्दकोष के साथ काम करने के लिए परिचित कराते हैं।
एक शब्दकोश का निर्माण
अजगर शब्दकोष बनाने के कई तरीके हैं। सिंटैक्स के साथ सरलतम ब्रेस इनिशियलाइज़ेशन का उपयोग करता है JSON की याद ताजा करती है JSON का उपयोग करके संवाद करने के लिए पायथन और जावास्क्रिप्ट कैसे प्राप्त करेंआज मैं आपको बता रहा हूं कि जावास्क्रिप्ट से अजगर को डेटा भेजने के लिए JSON का उपयोग कैसे करें। मैं एक वेब सर्वर सेटअप करने के लिए कवर करूंगा, साथ ही आपको सभी कोड की आवश्यकता होगी। अधिक पढ़ें .
उपयोगकर्ता = {'firstname': 'John', 'lastname': 'Smith', 'age': 27}
आप चाबियों के रूप में भी संख्याओं का उपयोग कर सकते हैं। हालाँकि, चाबी के रूप में फ्लोटिंग पॉइंट नंबरों का उपयोग करने से सावधान रहें
कंप्यूटर इन्हें सन्निकटन के रूप में संग्रहीत करता है सब कुछ आप राम और स्मृति प्रबंधन के बारे में पता करने की आवश्यकता हैRAM आपके कंप्यूटर की शॉर्ट टर्म मेमोरी है। इसलिए, स्मृति प्रबंधन का सिस्टम प्रदर्शन पर महत्वपूर्ण प्रभाव पड़ता है। यहां हम बताते हैं कि रैम कैसे काम करता है और क्या आप इसकी दक्षता बढ़ाने के लिए कुछ भी कर सकते हैं। अधिक पढ़ें .बारिश_परिसेंट = {1980: '17% ', 1981: '15%', 1982: '10% '} प्रिंट बारिश_सेंट। प्रिंट बारिश_पेंट [1980] # प्रिंट। {1980: '17%', 1981: '15%', 1982: '10%'} 17%
निर्दिष्ट कुंजी-मूल्य जोड़े
आप कीवर्ड मान के रूप में नाम मान युग्मों का उपयोग करके एक शब्दकोश भी बना और आरंभ कर सकते हैं dict () निर्माता।
जनसंख्या = तानाशाह (कैलिफ़ोर्निया = 37253956, कोलोराडो = 5029196, कनेक्टिकट = 3574097, डेलावेयर = 77979) प्रिंट आबादी। # प्रिंट। {'कनेक्टिकट': 3574097, 'डेलावेयर': 897934, 'कैलिफोर्निया': 37253956, 'कोलोराडो': 5029196}
की-वैल्यू टुपल्स का एरियर
फिर भी शब्दकोश बनाने का एक अन्य तरीका कुंजी-मूल्य टुपल्स की एक सरणी का उपयोग करना है। यहाँ ऊपर के रूप में एक ही उदाहरण है।
जोड़े = [('कैलिफ़ोर्निया', 37253956), ('कोलोराडो', 5029196), ('कनेक्टिकट', 3574097), ('डेलावेयर', 897934)] जनसंख्या = तानाशाही (जोड़े) प्रिंट आबादी। # प्रिंट। {'कनेक्टिकट': 3574097, 'डेलावेयर': 897934, 'कैलिफोर्निया': 37253956, 'कोलोराडो': 5029196}
डिक्ट कॉम्प्रिहेंशन
यदि आप कुंजियों के आधार पर मूल्यों की गणना कर सकते हैं, तो डिक्ट कॉम्प्रिहेंशन एक तानाशाही को शुरू करने के लिए एक शांत वाक्यविन्यास प्रदान करता है। निम्नलिखित संख्याओं की एक श्रृंखला के लिए संख्याओं और वर्ग मानों का एक तानाशाही आरंभ करता है।
{x: x ** 2 x के लिए xrange में प्रिंट करें (10, 20)} # प्रिंट। {10: 100, 11: 121, 12: 144, 13: 169, 14: 196, 15: 225, 16: 256, 17: 289, 18: 324, 19: 361}
यह कैसे काम करता है? बाद वाला हिस्सा (x के लिए xrange में (10, 20)) निर्दिष्ट सीमा में संख्या की एक सीमा देता है। प्रमुख समझ वाला हिस्सा ({x: x ** 2 ..}) इस सीमा पर छोरों और शब्दकोश को इनिशियलाइज़ करता है।
पायथन डिक्शनरी के साथ काम करना
आपके द्वारा बनाये जाने के बाद आप शब्दकोशों के साथ क्या कर सकते हैं? ठीक है, आप तत्वों का उपयोग कर सकते हैं, मूल्यों को अपडेट कर सकते हैं, तत्वों को हटा सकते हैं, आदि।
पायथन शब्दकोश तत्वों तक पहुँचना
ब्रैकेट के भीतर कुंजी का उपयोग करके एक तानाशाह के एक तत्व तक पहुंचें, जैसे आप करेंगे एक सरणी या एक सूची पायथॉन में एरर्स और लिस्ट कैसे काम करते हैंप्रोग्रामिंग में एरर्स और लिस्ट सबसे उपयोगी डेटा स्ट्रक्चर्स में से कुछ हैं - हालाँकि कुछ लोग अपनी पूरी क्षमता के लिए इनका उपयोग करते हैं। अधिक पढ़ें .
प्रिंट जनसंख्या ['डेलावेयर'] # प्रिंट। 897934.
यदि कुंजी एक संख्या है, तो आपको उद्धरण चिह्नों की आवश्यकता नहीं है। तब अभिव्यक्ति एक सूची या सरणी अनुक्रमण जैसी दिखती है।
प्रिंट बारिश_पेंट [1980] # प्रिंट। 17%
इसे एक्सेस करने के दौरान कुंजी का प्रकार मेल खाना चाहिए जो पायथन डिक्शनरी में संग्रहीत है। संग्रहीत कुंजी के बाद से एक त्रुटि का कारण बनता है, जबकि एक्सेस कुंजी एक स्ट्रिंग है।
x = '1980' प्रिंट बारिश_सेंट [x] # परिणाम 1 x = '1980' में > 2 प्रिंट रेन_परसेंट [x] कीयर: '1980'
गैर-मौजूद कुंजी तक पहुंचना एक त्रुटि है।
बारिश_परिसेंट = {1980: '17% ', 1981: '15%', 1982: '10% '} प्रिंट रेन_परेंट [1983] # प्रिंट 1 रेन_परेंट = {1980: '17% ', 1981: '15%', 1982: '10% '} > 2 प्रिंट रेन_परेंट [1983] कीरर: 1983।
एक कुंजी तक पहुंचने के लिए और एक डिफ़ॉल्ट मान प्रदान करें यदि मानचित्रण मौजूद नहीं है, तो उपयोग करें प्राप्त() दूसरे तर्क के रूप में डिफ़ॉल्ट मान के साथ विधि।
प्रिंट बारिश_परेंट .get (1985, '0%') # प्रिंट। 0%
अस्तित्व के लिए जाँच कर रहा है
क्या होगा यदि आप वास्तव में इसे एक्सेस करने के प्रयास के बिना एक कुंजी की उपस्थिति के लिए जांचना चाहते हैं (और संभवतः मुठभेड़ KeyError ऊपरोक्त अनुसार)? आप उपयोग कर सकते हैं में रूप में कीवर्ड dct में कुंजी जो एक बूलियन देता है।
1980 को वर्षा_परिवर्तित करें। '1980' को rain_percent में प्रिंट करें। # प्रिंट। सच। असत्य।
स्थिति का उल्टा (यानी सुनिश्चित करें कि कुंजी पायथन डिक्शनरी में मौजूद नहीं है) फॉर्म का उपयोग कर कुंजी dct में नहीं. यह मानक अजगर नकार के बराबर है dct में चाबी नहीं.
1980 को प्रिंट न करें। 1985 बारिश में नहीं_परिवर्तित करें। # प्रिंट। असत्य। सच।
संशोधित करने वाले तत्व
आवश्यक कुंजी निर्दिष्ट करके मान बदलें।
उपयोगकर्ता = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} उपयोगकर्ता ['आयु'] = 29 उपयोगकर्ताओं को प्रिंट करें। # प्रिंट। {"अंतिम नाम": 'स्मिथ', 'आयु': 29, 'प्रथम नाम': 'जॉन'}
पायथन शब्दकोश में एक नया मानचित्रण जोड़ने के लिए एक ही वाक्यविन्यास का उपयोग करें।
उपयोगकर्ता ['dob'] = '15 -sep-1971 ' उपयोगकर्ताओं को प्रिंट करें। # प्रिंट। {[dob ': '15 -sep-1971', 'lastname': 'Smith', 'age': 29, 'firstname': 'John'}
का उपयोग कर एक शॉट में एक शब्दकोश के कई तत्वों को अद्यतन करें अपडेट करें() तरीका।
उपयोगकर्ता = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} users.update ({'उम्र': 29, 'dob': '15 -sep-1971 '}) उपयोगकर्ताओं को प्रिंट करें। # प्रिंट। {[dob ': '15 -sep-1971', 'lastname': 'Smith', 'age': 29, 'firstname': 'John'}
कुंजी का उपयोग करने के लिए एक डिफ़ॉल्ट मान सेट करें डिफॉल्ट सेट करें(). यह विधि कुंजी के लिए मान सेट करती है यदि मैपिंग मौजूद नहीं है। यह वर्तमान मान लौटाता है।
# वर्तमान मूल्य नहीं बदलता है। users.setdefault ('Firstname', 'Jane') प्रिंट करें # प्रिंट। जॉन # मान सेट करता है। यूजर्स को प्रिंट करें। ऑफसेट ('शहर', 'एनवाई') # प्रिंट। एनवाई # अंतिम मूल्य। उपयोगकर्ताओं को प्रिंट करें। # प्रिंट। {"अंतिम नाम": 'स्मिथ', 'उम्र': 27, 'पहला नाम': 'जॉन', 'शहर': 'एनवाई'}
तत्वों को हटाना
का उपयोग करके शब्दकोश में मैपिंग हटाएं डेल ऑपरेटर। यह ऑपरेटर कुछ भी वापस नहीं करता है।
आपका सामना होगा KeyError यदि कुंजी शब्दकोश में मौजूद नहीं है।
उपयोगकर्ता = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} डेल उपयोगकर्ता ['उम्र'] उपयोगकर्ताओं को प्रिंट करें। # प्रिंट। {"अंतिम नाम": 'स्मिथ', 'प्रथम नाम': 'जॉन'}
उपयोग पॉप() इसके बजाय विधि, जब आप हटाए गए मान को वापस चाहते हैं।
उपयोगकर्ता = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} users.pop ('उम्र') प्रिंट करें उपयोगकर्ताओं को प्रिंट करें। # प्रिंट। 27. {"अंतिम नाम": 'स्मिथ', 'प्रथम नाम': 'जॉन'}
क्या होगा यदि आप एक कुंजी को हटाना चाहते हैं यदि यह मौजूद है, तो बिना किसी त्रुटि के यदि यह नहीं है? आप उपयोग कर सकते हैं पॉप() और निर्दिष्ट करें कोई नहीं दूसरे तर्क के लिए निम्नानुसार है:
उपयोगकर्ता = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} users.pop ('फू', कोई नहीं) उपयोगकर्ताओं को प्रिंट करें। # प्रिंट। {"अंतिम नाम": 'स्मिथ', 'आयु': 27, 'प्रथम नाम': 'जॉन'}
और यहाँ गैर-मौजूद कुंजी पर त्रुटि पैदा किए बिना शब्दकोश से कुंजियों का एक गुच्छा हटाने के लिए एक-लाइनर है।
उपयोगकर्ता = {'Firstname': 'John', 'lastname': 'Smith', 'age': 27, 'dob': '15 -sep-1971 '}} नक्शा (लैम्ब्डा x: users.pop (x, कोई नहीं), ['उम्र', 'फू', 'dos')) उपयोगकर्ताओं को प्रिंट करें।
एक शब्दकोश से सभी कुंजियों को हटाना चाहते हैं? उपयोग स्पष्ट() तरीका।
उपयोगकर्ता = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} users.clear () उपयोगकर्ताओं को प्रिंट करें। # प्रिंट। {}
अजगर शब्दकोशों के साथ लूपिंग
अजगर कई प्रदान करता है लूपिंग के लिए तरीके कंप्यूटर प्रोग्रामिंग में कैसे करें-जबकि लूप काम करते हैंलूप्स उन पहले नियंत्रण प्रकारों में से एक हैं जिन्हें आप प्रोग्रामिंग में सीखेंगे। आप के बारे में और छोरों के लिए शायद जानते हैं, लेकिन क्या करते हुए पाश पूरा करता है? अधिक पढ़ें एक शब्दकोश की प्रविष्टियों पर। अपनी जरूरत के हिसाब से एक चुनें।
लूपिंग ओवर कीज़
- अनुक्रम में प्रसंस्करण कुंजी (और संभवतः मान) के लिए सबसे सरल विधि फार्म के एक लूप का उपयोग करती है:
उपयोगकर्ता = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} उपयोगकर्ताओं के लिए k: प्रिंट k, '=>', उपयोगकर्ता [k] # प्रिंट। lastname => स्मिथ उम्र => 27। firstname => जॉन।
- विधि का उपयोग करना iterkeys () उपरोक्त के समान ही कार्य करता है। अपने पिक को किस रूप में उपयोग करना चाहते हैं, ले जाएं।
उपयोगकर्ता = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} for users.iterkeys (): प्रिंट k, '=>', उपयोगकर्ताओं [के] में k # प्रिंट। lastname => स्मिथ उम्र => 27। firstname => जॉन।
- एक लूप में कुंजियों को पुनः प्राप्त करने और संसाधित करने के लिए एक तीसरी विधि में अंतर्निहित फ़ंक्शन का उपयोग करना शामिल है आईटीईआर ().
उपयोगकर्ता = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} iter (k) में k के लिए: प्रिंट k, '=>', उपयोगकर्ता [k] # प्रिंट। lastname => स्मिथ उम्र => 27। firstname => जॉन।
- जब आपको संसाधित की जाने वाली कुंजी के सूचकांक की आवश्यकता होती है, तो इसका उपयोग करें गणना () दिखाए गए अनुसार फ़ंक्शन।
उपयोगकर्ता = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} इंडेक्सरेट में कुंजी (यूजर्स): प्रिंट इंडेक्स, की, '=>', यूजर्स [के] # प्रिंट। 0 अंतिम नाम => जॉन। 1 उम्र => जॉन। 2 फर्स्टनेम => जॉन।
कुंजी-मूल्य जोड़े पर लूपिंग
- जब आप एक कॉल के साथ प्रत्येक कुंजी-मूल्य जोड़ी को पुनः प्राप्त करना चाहते हैं, तो उपयोग करें iteritems ().
उपयोगकर्ता = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} k में, v में users.iteritems (): प्रिंट k, '=>', v। # प्रिंट। lastname => स्मिथ उम्र => 27। firstname => जॉन।
मूल्यों पर फेरबदल
- प्रक्रिया itervalues () शब्दकोश में सभी मूल्यों पर पुनरावृति करने के लिए इस्तेमाल किया जा सकता है। हालांकि यह विधि लूप के समान दिखती है मूल्यों (), यह अधिक कुशल है क्योंकि यह एक बार में सभी मानों को नहीं निकालता है।
उपयोगकर्ता = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} users.itervalues () में मूल्य के लिए: प्रिंट मूल्य। # प्रिंट। स्मिथ। 27. जॉन।
अर्क निकालना
निम्नलिखित विधियाँ विभिन्न पायथन शब्दकोश सूचनाओं को एक सरणी रूप में निकालने का वर्णन करती हैं। परिणामी सरणी को सामान्य अजगर निर्माणों का उपयोग करके देखा जा सकता है। हालांकि, ध्यान रखें कि डिक्शनरी के आकार के आधार पर लौटे हुए ऐरे बड़े हो सकते हैं। तो यह अधिक हो सकता है महंगा (स्मृति-वार) उपरोक्त तरीकों का उपयोग करने की तुलना में इन सरणियों को संसाधित करने के लिए।
एक मामला जहां इन सरणियों के साथ काम करना स्वीकार्य है, जब आपको अवांछनीय तत्वों से सामना करने पर शब्दकोश से आइटम हटाने की आवश्यकता होती है। शब्दकोश को संशोधित करते समय एक पुनरावृत्ति के साथ काम करना एक RuntimeError का कारण हो सकता है।
- प्रक्रिया आइटम () कुंजी-मूल्य टुपल्स की एक सरणी देता है। जैसा कि दिखाया गया है आप इन मुख्य-मूल्य वाले जोड़े पर पुनरावृति कर सकते हैं:
उपयोगकर्ता = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} k में, v में users.items (): प्रिंट k, '=>', v। # प्रिंट। lastname => स्मिथ उम्र => 27। firstname => जॉन।
- विधि का उपयोग करके शब्दकोश में सभी कुंजियों को प्राप्त करें चांबियाँ().
उपयोगकर्ता = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} users.keys () प्रिंट करें # प्रिंट। ['अंतिम नाम', 'आयु', 'पहला नाम']
कुंजियों पर लूप के लिए दिए गए सरणी का उपयोग करें।
for users.keys (): प्रिंट k, '=>', उपयोगकर्ताओं के लिए [k] # प्रिंट। lastname => स्मिथ उम्र => 27। firstname => जॉन।
- इसी तरह से, विधि का उपयोग करें मूल्यों () शब्दकोश में सभी मूल्यों को पुनः प्राप्त करने के लिए।
users.values () में मूल्य के लिए: प्रिंट मूल्य। # प्रिंट। स्मिथ। 27. जॉन।
आप पायथन डिक्शनरी का उपयोग कैसे करते हैं?
हमने इस लेख में अजगर शब्दकोशों के लिए सबसे आम उपयोग के मामलों को कवर करने की कोशिश की है। हमारे सभी की जांच करना सुनिश्चित करें अन्य पायथन लेख 10 मूल पायथन उदाहरण जो आपको तेजी से सीखने में मदद करेंगेबुनियादी अजगर उदाहरणों का यह लेख उन लोगों के लिए है, जिनके पास पहले से ही कुछ प्रोग्रामिंग अनुभव है और बस जल्द से जल्द अजगर को संक्रमण करना चाहते हैं। अधिक पढ़ें एक जैसे के लिए अधिक पायथन टिप्स 5 पाठ्यक्रम जो आपको पायथन बिगिनर से प्रो तक ले जाएंगेये पांच पाठ्यक्रम आपको पायथन में प्रोग्रामिंग के बारे में सिखाएंगे, जो अभी वहां की सबसे हॉट भाषाओं में से एक है। अधिक पढ़ें . यदि आपके पास अन्य उपयोग के मामले हैं जो आपको लगता है कि शामिल होना चाहिए, तो कृपया नीचे टिप्पणी में हमें बताएं!
छवि क्रेडिट: viper345 / शटरस्टॉक