पायथन 3 - शब्दकोश
प्रत्येक कुंजी को उसके मूल्य से एक बृहदान्त्र (:) से अलग किया जाता है, वस्तुओं को अल्पविराम से अलग किया जाता है, और पूरी चीज़ को कर्व ब्रेस में संलग्न किया जाता है। बिना किसी आइटम के एक खाली शब्दकोश केवल दो घुंघराले ब्रेसिज़ के साथ लिखा जाता है, जैसे: {}।
कुंजी एक शब्दकोश के भीतर अद्वितीय हैं जबकि मूल्य नहीं हो सकते हैं। एक शब्दकोश के मूल्य किसी भी प्रकार के हो सकते हैं, लेकिन कुंजी एक अपरिवर्तनीय डेटा प्रकार की होनी चाहिए जैसे कि तार, संख्या, या टुपल्स।
शब्दकोश में पहुँच मान
शब्दकोश तत्वों तक पहुंचने के लिए, आप इसके मूल्य को प्राप्त करने के लिए कुंजी के साथ परिचित वर्ग कोष्ठक का उपयोग कर सकते हैं। निम्नलिखित एक सरल उदाहरण है -
#!/usr/bin/python3
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])
जब उपरोक्त कोड निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
dict['Name']: Zara
dict['Age']: 7
यदि हम एक कुंजी के साथ एक डेटा आइटम तक पहुंचने का प्रयास करते हैं, जो शब्दकोश का हिस्सा नहीं है, तो हमें निम्नानुसार एक त्रुटि मिलती है -
#!/usr/bin/python3
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
print ("dict['Alice']: ", dict['Alice'])
जब उपरोक्त कोड निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
dict['Zara']:
Traceback (most recent call last):
File "test.py", line 4, in <module>
print "dict['Alice']: ", dict['Alice'];
KeyError: 'Alice'
शब्दकोश अद्यतन
आप एक नई प्रविष्टि या एक कुंजी-मूल्य जोड़ी को जोड़कर, एक मौजूदा प्रविष्टि को संशोधित करके या मौजूदा प्रविष्टि को हटाकर अपडेट कर सकते हैं जैसा कि नीचे दिए गए सरल उदाहरण में दिखाया गया है।
#!/usr/bin/python3
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School" # Add new entry
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
जब उपरोक्त कोड निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
dict['Age']: 8
dict['School']: DPS School
शब्दकोश तत्वों को हटाएँ
आप या तो व्यक्तिगत शब्दकोश तत्वों को हटा सकते हैं या किसी शब्दकोश की संपूर्ण सामग्री को साफ़ कर सकते हैं। आप एकल ऑपरेशन में पूरे शब्दकोश को हटा भी सकते हैं।
स्पष्ट रूप से एक संपूर्ण शब्दकोश निकालने के लिए, बस का उपयोग करें delबयान। निम्नलिखित एक सरल उदाहरण है -
#!/usr/bin/python3
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
del dict['Name'] # remove entry with key 'Name'
dict.clear() # remove all entries in dict
del dict # delete entire dictionary
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
यह निम्न परिणाम उत्पन्न करता है।
एक अपवाद उठाया जाता है क्योंकि उसके बाद del dictशब्दकोश अब मौजूद नहीं है।
dict['Age']:
Traceback (most recent call last):
File "test.py", line 8, in <module>
print "dict['Age']: ", dict['Age'];
TypeError: 'type' object is unsubscriptable
Note - बाद के खंड में डेल () विधि पर चर्चा की गई है।
शब्दकोश कुंजी के गुण
शब्दकोश मूल्यों पर कोई प्रतिबंध नहीं है। वे किसी भी मनमाने ढंग से पायथन ऑब्जेक्ट, या तो मानक ऑब्जेक्ट या उपयोगकर्ता-परिभाषित ऑब्जेक्ट हो सकते हैं। हालाँकि, यह कुंजियों के लिए सही नहीं है।
शब्दकोश कुंजियों के बारे में याद रखने के लिए दो महत्वपूर्ण बिंदु हैं -
(a)प्रति कुंजी एक से अधिक प्रविष्टि की अनुमति नहीं है। इसका मतलब है कि डुप्लिकेट कुंजी की अनुमति नहीं है। जब असाइनमेंट के दौरान डुप्लिकेट कुंजियों का सामना किया जाता है, तो अंतिम असाइनमेंट जीत जाता है। उदाहरण के लिए -
#!/usr/bin/python3
dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}
print ("dict['Name']: ", dict['Name'])
जब उपरोक्त कोड निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
dict['Name']: Manni
(b)चाबियाँ अपरिवर्तनीय होनी चाहिए। इसका मतलब है कि आप शब्द कुंजियों के रूप में तार, संख्याओं या टुपल्स का उपयोग कर सकते हैं, लेकिन ['कुंजी' जैसी किसी चीज़ की अनुमति नहीं है। निम्नलिखित एक सरल उदाहरण है -
#!/usr/bin/python3
dict = {['Name']: 'Zara', 'Age': 7}
print ("dict['Name']: ", dict['Name'])
जब उपरोक्त कोड निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
Traceback (most recent call last):
File "test.py", line 3, in <module>
dict = {['Name']: 'Zara', 'Age': 7}
TypeError: list objects are unhashable
बिल्ट-इन डिक्शनरी फंक्शन्स और मेथड्स
पायथन में निम्नलिखित शब्दकोश कार्य शामिल हैं -
अनु क्रमांक। | समारोह विवरण |
---|---|
1 | सीएमपी (तानाशाही 1, तानाशाही 2) अब पायथन 3 में उपलब्ध नहीं है। |
2 | लेन (dict) शब्दकोश की कुल लंबाई देता है। यह शब्दकोश में मदों की संख्या के बराबर होगा। |
3 | str (dict) एक शब्दकोश के एक मुद्रण योग्य स्ट्रिंग प्रतिनिधित्व का उत्पादन करता है |
4 | प्रकार (चर) पारित चर का प्रकार लौटाता है। यदि पारित चर शब्दकोश है, तो यह एक शब्दकोश प्रकार लौटाएगा। |
पायथन में निम्नलिखित शब्दकोश विधियाँ शामिल हैं -
अनु क्रमांक। | विधि और विवरण |
---|---|
1 | dict.clear () शब्दकोश के सभी तत्वों को निकालता है dict |
2 | dict.copy () रिटर्न शब्दकोश के एक उथले प्रतिलिपि dict |
3 | dict.fromkeys () Seq से कुंजी और मूल्यों के साथ एक नया शब्दकोश बनाएं सेट करने के लिए मूल्य । |
4 | dict.get (कुंजी, डिफ़ॉल्ट = कोई नहीं) के लिए कुंजी कुंजी, रिटर्न कुंजी नहीं शब्दकोश में यदि मान या डिफ़ॉल्ट |
5 | dict.has_key (key) हटाए गए, इसके बजाय ऑपरेशन में उपयोग करें । |
6 | dict.items () की एक सूची देता है dict रों (कुंजी, मूल्य) टपल जोड़े ' |
7 | dict.keys () डिक्शनरी की कुंजियों की सूची लौटाता है |
8 | dict.setdefault (कुंजी, डिफ़ॉल्ट = कोई नहीं) पाने के लिए समान (), लेकिन निर्धारित करेगा कुंजी [कुंजी] = डिफ़ॉल्ट यदि कुंजी पहले से ही तानाशाही में नहीं है |
9 | dict.update (dict2) शब्दकोश जोड़ता dict2 करने की मुख्य-मान जोड़े dict |
10 | dict.values () शब्दकोश की रिटर्न सूची dict के मूल्यों |