एक पायथन डिक्शनरी नेस्टेड हो सकती है यानी एक डिक्शनरी के भीतर डिक्शनरी हो सकती हैं। इस लेख में हम देखेंगे कि नेस्टेड डिक्शनरी होने पर डिक्शनरी के नेस्टिंग स्तर की गणना कैसे करें।
स्ट्रिंग रूपांतरण के साथ
इस दृष्टिकोण में हम पूरी डिक्शनरी को एक स्ट्रिंग में बदलते हैं। फिर हम बाएं { की संख्या गिनते हैं जो दर्शाते हैं कि डिक्शनरी किस स्तर तक नेस्टेड हैं।
उदाहरण
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