अजगर शब्दकोश समझ

इस ट्यूटोरियल में, हम पायथन डिक्शनरी समझ और उदाहरणों की मदद से इसका उपयोग कैसे करें, इसके बारे में जानेंगे।

शब्दकोश अजगर में डेटा प्रकार हैं जो हमें कुंजी / मूल्य जोड़ी में डेटा संग्रहीत करने की अनुमति देता है । उदाहरण के लिए:

 my_dict = (1: 'apple', 2: 'ball') 

उनके बारे में और जानने के लिए: पायथन डिक्शनरी

पायथन में शब्दकोश समझ क्या है?

शब्दकोश बनाने के लिए शब्दकोश समझदारी एक सुरुचिपूर्ण और संक्षिप्त तरीका है।

उदाहरण 1: शब्दकोश की समझ

निम्नलिखित कोड पर विचार करें:

 square_dict = dict() for num in range(1, 11): square_dict(num) = num*num print(square_dict) 

अब, शब्दकोश समझ का उपयोग करके उपरोक्त कार्यक्रम में शब्दकोश बनाते हैं।

 # dictionary comprehension example square_dict = (num: num*num for num in range(1, 11)) print(square_dict) 

दोनों कार्यक्रमों का आउटपुट समान होगा।

 (1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81, 10: 100)

दोनों कार्यक्रमों में, हमने संख्या-वर्ग कुंजी / मूल्य जोड़ी केsquare_dict साथ एक शब्दकोश बनाया है ।

हालाँकि, शब्दकोश की समझ का उपयोग करके हमें एक पंक्ति में एक शब्दकोश बनाने की अनुमति मिली ।

शब्दकोश समझ का उपयोग करना

उपरोक्त उदाहरण से, हम देख सकते हैं कि शब्दकोश की समझ एक विशिष्ट पैटर्न में लिखी जानी चाहिए।

शब्दकोश समझ के लिए न्यूनतम सिंटैक्स है:

 शब्दकोश = (कुंजी: चलने योग्य में var के लिए मूल्य) 

उपरोक्त उदाहरण से इस वाक्य रचना की तुलना शब्दकोश से करें।

अब, देखते हैं कि कैसे हम दूसरे शब्दकोश के डेटा का उपयोग करके शब्दकोश समझ का उपयोग कर सकते हैं।

उदाहरण 3: शब्दकोश समझ का उपयोग कैसे करें

 #item price in dollars old_price = ('milk': 1.02, 'coffee': 2.5, 'bread': 2.5) dollar_to_pound = 0.76 new_price = (item: value*dollar_to_pound for (item, value) in old_price.items()) print(new_price) 

आउटपुट

 ('दूध': 0.7752, 'कॉफी': 1.9, 'ब्रेड': 1.9) 

यहां, हम देख सकते हैं कि हमने डॉलर में आइटम की कीमतों को पुनः प्राप्त किया और उन्हें पाउंड में बदल दिया। शब्दकोश की समझ का उपयोग इस कार्य को बहुत सरल और छोटा बनाता है।

शब्दकोश समझ में सशर्त

हम इसमें शर्तों को जोड़कर शब्दकोश की समझ को और अधिक अनुकूलित कर सकते हैं। आइए एक उदाहरण देखें।

उदाहरण 4: यदि सशर्त शब्दकोश समझ

 original_dict = ('jack': 38, 'michael': 48, 'guido': 57, 'john': 33) even_dict = (k: v for (k, v) in original_dict.items() if v % 2 == 0) print(even_dict) 

आउटपुट

 ('जैक': 38, 'माइकल': 48) 

जैसा कि हम देख सकते हैं, ifशब्दकोश की समझ में खंड के कारण केवल मूल्य वाली वस्तुओं को भी जोड़ा गया है ।

उदाहरण 5: एकाधिक अगर सशर्त शब्दकोश समझ

 original_dict = ('jack': 38, 'michael': 48, 'guido': 57, 'john': 33) new_dict = (k: v for (k, v) in original_dict.items() if v % 2 != 0 if v < 40) print(new_dict) 

आउटपुट

 ('जॉन': 33) 

इस मामले में, केवल 40 से कम के विषम मूल्य वाले आइटम को नए शब्दकोश में जोड़ा गया है।

इसकी वजह यह है कि ifशब्दकोश की समझ में कई खंड हैं। वे andऑपरेशन के बराबर हैं जहां दोनों स्थितियों को सच होना है।

उदाहरण 6: अगर-और सशर्त शब्दकोश समझ

 original_dict = ('jack': 38, 'michael': 48, 'guido': 57, 'john': 33) new_dict_1 = (k: ('old' if v> 40 else 'young') for (k, v) in original_dict.items()) print(new_dict_1) 

आउटपुट

 ('जैक': 'यंग', 'माइकल': 'ओल्ड', 'गाइडो': 'ओल्ड', 'जॉन': 'यंग') 

इस मामले में, शब्दकोश समझ के माध्यम से एक नया शब्दकोश बनाया जाता है।

40 या अधिक के मूल्य वाली वस्तुओं में 'पुराने' का मूल्य होता है जबकि अन्य में 'युवा' का मूल्य होता है।

नेस्टेड डिक्शनरी की समझ

शब्दकोश शब्दकोश बनाने के लिए हम खुद को समझने के लिए शब्दकोश समझ जोड़ सकते हैं। आइए एक उदाहरण देखें।

उदाहरण 7: दो शब्दकोश समझ के साथ नेस्टेड शब्दकोश

 dictionary = ( k1: (k2: k1 * k2 for k2 in range(1, 6)) for k1 in range(2, 5) ) print(dictionary) 

आउटपुट

 (2: (1: 2, 2: 4, 3: 6, 4: 8, 5: 10), 3: (1: 3, 2: 6, 3: 9, 4: 12, 5: 15), 4: (1: 4, 2: 8, 3: 12, 4: 16, 5: 20)) 

As you can see, we have constructed a multiplication table in a nested dictionary, for numbers from 2 to 4.

Whenever nested dictionary comprehension is used, Python first starts from the outer loop and then goes to the inner one.

So, the above code would be equivalent to:

 dictionary = dict() for k1 in range(11, 16): dictionary(k1) = (k2: k1*k2 for k2 in range(1, 6)) print(dictionary) 

It can further be unfolded:

 dictionary = dict() for k1 in range(11, 16): dictionary(k1) = dict() for k2 in range(1, 6): dictionary(k1)(k2) = k1*k2 print(dictionary) 

All these three programs give us the same output.

Advantages of Using Dictionary Comprehension

As we can see, dictionary comprehension shortens the process of dictionary initialization by a lot. It makes the code more pythonic.

Using dictionary comprehension in our code can shorten the lines of code while keeping the logic intact.

Warnings on Using Dictionary Comprehension

भले ही शब्दकोश समझदार सुरुचिपूर्ण कोड लिखने के लिए महान हैं जो पढ़ने में आसान है, वे हमेशा सही विकल्प नहीं होते हैं।

इनका उपयोग करते समय हमें सावधान रहना चाहिए:

  • वे कभी-कभी कोड को धीमा कर सकते हैं और अधिक मेमोरी का उपभोग कर सकते हैं।
  • वे कोड की पठनीयता को भी कम कर सकते हैं।

हमें केवल एक कोड बनाने के लिए एक कठिन तर्क या बड़ी संख्या में शब्दकोष को उनके अंदर समझने की कोशिश नहीं करनी चाहिए। इन मामलों में, लूप जैसे अन्य विकल्पों को चुनना बेहतर है।

दिलचस्प लेख...