Working with Non-Existing Dictionary Keys

Working with Non-Existing Dictionary Keys – जैसाकि हमने पिछले Example में देखा, Mappings की तरह ही Dictionaries भी केवल Keys के माध्‍यम से ही Items को Access करने की सुविधा Provide करता है। लेकिन इसके साथ ही Dictionary, Method Calls के माध्‍यम से Type-Specific Operations को भी Support करता है, जिनकी वजह से हम बहुत ही Specific तरीके की जरूरतों को पूरा कर पाने में सक्षम हो पाते हैं।

उदाहरण के लिए हालांकि हम किसी Dictionary में New Key के साथ Value Assign करके उसे Expand कर सकते हैं लेकिन हम कभी भी किसी एक Non-Existing Key को Access नहीं कर सकते और यदि हम ऐसा करने का प्रयास करते हैं, तो Python हमें Error Return करता है। इस प्रक्रिया को हम निम्‍न Example द्वारा ज्‍यादा बेहतर तरीके से समझ सकते हैं:

[code]
FileName: NonKeyDictionary.py
dicStud =   { 'Name':'KRISHNA', 'Class': 'I', 'Age' : 6}
print("Student Record \n", dicStud, '\n')
print("Add Key mName for Mother Name");

dicStud['mName'] = "YASHODA"

print("Modified Record \n", dicStud, '\n')
print("Return Non-Existing Key 'fName' for Father Name");
print(dicStud['fName'])

Output
Student Record
 {'Name': 'KRISHNA', 'Class': 'I', 'Age': 6}

Add Key mName for Mother Name

Modified Record
 {'Name': 'KRISHNA', 'Class': 'I', 'Age': 6, 'mName': 'YASHODA'}

Return Non-Existing Key 'fName' for Father Name

Traceback (most recent call last):
  File "NonKeyDictionary.py", line 11, in <module>
    print(dicStud['fName'])
KeyError: 'fName'
[/code]

इस Example के सारे Code Self Explaining हैं। सबसे पहले हमने एक Dictionary Create किया जिसमें एक Student के Name, Class व Age को Key-Value Pair के रूप में Define करके अगले Statement में उस Record को Display कर दिया है।

फिर अगले Statement में हमने mName नाम का एक नया Key Add किया और इस Key के साथ  Value ‘YASHODA’ को Add करके Output में Display कर दिया, जिसका परिणाम हम उपरोक्‍त Output में देख सकते हैं। यहां तक Program Normally Run होता है।

लेकिन इसके Just अगले Statement में हमने Output में Dictionary के fName Key को Access करने का प्रयास किया है और क्‍योंकि ये Key हमारी Dictionary में पहले से उपलब्‍ध ही नहीं है, इसलिए जैसे ही ये Statement Execute होता है, Python हमें KeyError: ‘fName’ Error Return कर देता है। ऐसा इसीलिए होता है क्‍योंकि हम किसी भी Dictionary के केवल उन्‍हीं Items को Access कर सकते हैं, जिनसे Associated Key, Dictionary में पहले से मौजूद हो।

परन्‍तु जब हम एक Professional Application Develop कर रहे होते हैं, तब कई Programmers एक ही Project पर काम कर रहे होते हैं और ऐसे में कई बार हमें पता ही नहीं होता कि किसी Dictionary में कोई Key Exist है या नहीं। इस स्थिति में यदि हम किसी Non-Key को Access करने का प्रयास करेंगे, तो हमें उपरोक्‍तानुसार Error प्राप्‍त होगा।

इस तरह की स्थिति को Handle करने के लिए हम Python में दो तरीकों को Use कर सकते हैं। पहले तरीके के अन्‍तर्गत हम किसी Key को Access करने से पहले उसे इस बात के लिए Check कर सकते हैं कि वह Key, Dictionary में पहले से Exist है या नहीं और इस जरूरत को पूरा करने के लिए Python हमें in नाम का Membership Expression Provide करता है, जो किसी Key को उसके Existence के लिए Check करता है। जबकि Exactly इसी जरूरत को हम Python के if Statement का प्रयोग करते हुए भी पूरा कर सकते हैं। इन दोनों तरीकों को हम निम्‍न Example द्वारा आसानी से समझ सकते हैं-

[code]
FileName: NonKeyTest.py
dicStud =   { 'Name':'KRISHNA', 'Class': 'I', 'Age' : 6}

print("Student Record \n", dicStud, '\n')
print("Add Key mName for Mother Name");

dicStud['mName'] = "YASHODA"

print("Modified Record \n", dicStud, '\n')
print("Test 'fName' for Existence with 'in' Membership Expression.");
print("'fName' Exists? ", 'fName' in dicStud, '\n')
print("Test 'fName' for Existence using 'if' Statement.");

if not 'fName' in dicStud:
    print("'fName' missing")

Output
Student Record
 {'Name': 'KRISHNA', 'Class': 'I', 'Age': 6}

Add Key mName for Mother Name

Modified Record
 {'Name': 'KRISHNA', 'Class': 'I', 'Age': 6, 'mName': 'YASHODA'}

Test 'fName' for Existence with 'in' Membership Expression.
'fName' Exists?  False

Test 'fName' for Existence using 'if' Statement.
'fName' missing
[/code]

इस Example के अनुसार जब निम्‍न “in” Membership Expression वाला print() Statement Execute होता है-

   print(“‘fName’ Exists? “, ‘fName’ in dicStud, ‘\n’)

जो Dictionary dicStud में ‘fName’ नाम का Key Search करता है। यदि ये Key Dictionary में Exist हो, तो True Return होता है। चूंकि हमारे Example में इस नाम की कोई Key, Dictionary में Exist नहीं है, इसलिए Output के रूप में हमें निम्‍नानुसार False प्राप्‍त होता है-

‘fName’ Exists?  False

जबकि इसके बाद Specify किए गए if Statement में हमने dicStud Dictionary को इस बात के लिए Test किया है कि उसमें ‘fName’ नाम का Key Exist है या नहीं, यदि Dictionary में Specified Key Exist हो, तो ये if Statement TRUE हो जाता है और इसके बाद लिखे गए Statement Block का Execution कर देता है।

लेकिन इस Example में हम ये चाहते हैं कि यदि Compare की जा रही Key, Dictionary में पहले से Exist न हो, तो if Statement Block का Execution हो जाए। इसलिए हमने if Statement के साथ not Logical Operator का प्रयोग किया है जो कि if Statement के True को False व False को True कर देता है। इसलिए जैसे ही इस Example में निम्‍नानुसार Specified if Statement का Execution होता है-

   if not ‘fName’ in dicStud:

Python Interpreter ‘fName’ Key को dicStud Dictionary में Search करता है और क्‍योंकि इस Dictionary में ‘fName’ नाम का Key Exist ही नहीं है, इसलिए ये if Statement False Return करता है। लेकिन इसी if Statement में not Keyword का भी प्रयोग किया गया है, जो if Statement से Return होने वाले False को True में Convert कर देता है। परिणामस्‍वरूप if Statement Block के print() Statement Code का Execution हो जाता है और हमें निम्‍नानुसार Output प्राप्‍त होता है-

‘fName’ missing

यदि आपको C/C++, Java, C# जैसी किसी भी अन्‍य Programming Langauge का थोड़ा-बहुत भी ज्ञान है, तो इस Example में लिखे गए if Statement की Working को आप आसानी से समझ गए होंगे। फिर भी आगे आने वाले Chapters में Python के Perspective में इन Control Statements का प्रयोग किस तरह से किया जाता है, इस विषय में हम विस्‍तार से Discuss करेंगे। (Working with Non-Existing Dictionary Keys in Python in Hindi)

Python in Hindi - BccFalna.comये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook Python in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी है, तो निश्चित रूप से ये EBook भी आपके लिए काफी उपयोगी साबित होगी।

Python in Hindi | Page: 602 | Format: PDF

BUY NOW