एक पायथन डिक्शनरी को नेस्टेड किया जा सकता है यानी डिक्शनरी के भीतर डिक्शनरी होती है। इस लेख में हम देखेंगे कि नेस्टेड डिक्शनरी होने पर किसी डिक्शनरी में नेस्टिंग के स्तर की गणना कैसे की जाती है।
स्ट्रिंग रूपांतरण के साथ
इस दृष्टिकोण में हम पूरे शब्दकोश को एक स्ट्रिंग में बदल देते हैं। फिर हम बाईं ओर की संख्या गिनते हैं { जो इंगित करती है कि शब्दकोश किस स्तर पर नेस्टेड हैं।
उदाहरण
dictA = {1: 'Sun', 2: {3: {4:'Mon'}}} dictStr = str(dictA) cnt = 0 for i in dictStr : if i == "{": cnt += 1 print("The depth of dictionary: ",cnt)
आउटपुट
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -
The depth of dictionary: 3
पुनरावृत्ति के साथ
हम एक फ़ंक्शन डिज़ाइन कर सकते हैं जो डिक्शनरी के मूल्यों की जांच करने के लिए खुद को रिकर्सिव कॉल करेगा। जब तक आंतरिक तत्व का मूल्यांकन डिक्शनरी के रूप में किया जाता है, तब तक फ़ंक्शन स्वयं कॉल करेगा और हमें डिक्शनरी की गहराई के लिए परिणाम मिलेगा।
उदाहरण
def finddepth(dictA): if isinstance(dictA, dict): return 1 + (max(map(finddepth, dictA.values())) if dictA else 0) return 0 dictA = {1: 'Sun', 2: {3: {4:'Mon'}}} print("The depth of dictionary: ",finddepth(dictA))
आउटपुट
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -
The depth of dictionary: 3