Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में डिक्शनरी की गहराई खोजें


एक पायथन डिक्शनरी नेस्टेड हो सकती है यानी एक डिक्शनरी के भीतर डिक्शनरी हो सकती हैं। इस लेख में हम देखेंगे कि नेस्टेड डिक्शनरी होने पर डिक्शनरी के नेस्टिंग स्तर की गणना कैसे करें।

स्ट्रिंग रूपांतरण के साथ

इस दृष्टिकोण में हम पूरी डिक्शनरी को एक स्ट्रिंग में बदलते हैं। फिर हम बाएं { की संख्या गिनते हैं जो दर्शाते हैं कि डिक्शनरी किस स्तर तक नेस्टेड हैं।

उदाहरण

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
  1. - पायथन में डिक्शनरी पर पुनरावृति

    इस लेख में, हम पायथन 3.x (या पूर्व संस्करणों) में डिक्शनरी के पुनरावृति/ट्रैवर्सल के बारे में सीखेंगे। एक डिक्शनरी कुंजी-मान जोड़े का एक अनऑर्डर्ड अनुक्रम है। इंडेक्स किसी भी अपरिवर्तनीय प्रकार के हो सकते हैं और उन्हें कुंजी कहा जाता है। यह भी कर्ली ब्रेसेस के भीतर निर्दिष्ट होता है। विधि 1 - सीध

  1. - पायथन में डिक्शनरी मेथड्स

    पायथन में कुछ डिक्शनरी मेथड्स हैं जो नीचे दिए गए हैं:क्र.संमेथड नाम और विवरण1Python Dictionary clear()सभी आइटम्स क्लियर करें2Python Dictionary copy()डिक्शनरी की कॉपी3Python Dictionary fromkeys()दिए गए सीक्वेंस से डिक्शनरी बनाता है4Python Dictionary get()की की वैल्यू प्राप्त करें5Python Dictionary it

  1. - पायथन डिक्शनरी में नॉन-ज़ीरो वैल्यू का औसत कैसे खोजें?

    आप डिक्शनरी पर इटरेट करके और पहले ज़ीरो वैल्यू को फ़िल्टर करके ऐसा कर सकते हैं। फिर फ़िल्टर की गई वैल्यू का योग लें। अंत में, इन फ़िल्टर की गई वैल्यू की संख्या से विभाजित करें। उदाहरण my_dict = {foo: 100, bar: 0, baz: 200} filtered_vals = [v for _, v in my_dict.items() if v != 0] average = sum(filt