2012-10-10 10 views
9
d = { 
    "local": { 
     "count": 1, 
     "health-beauty": { 
      "count": 1, 
      "tanning": {"count": 1} 
     } 
    }, 
    "nationwide": {"count": 9.0}, 
    "travel": {"count": 0} 
}  

इस उदाहरण में "nationwide" सबसे बड़ा है।नेस्टेड शब्दकोश में अधिकतम खोजें

d = {'travel': {'count': 0}, 'local': {'count': 1, 'health-beauty': {'count': 1, 'tanning': {'count': 1}}}, 'nationwide': {'count': 9.0}} 
+0

'प्रिंट अधिकतम पर देख रहा था (घ, कुंजी = लैम्ब्डा एक्स: एक्स [1]) ' – AlexZ

+1

आपको स्थानीयतम स्थान बनाना चाहिए था ... क्योंकि यह कोई जवाब नहीं मिलेगा ... –

+0

यदि" कमाना "10 था, और आपको इसे पकड़ने की आवश्यकता है, आपको शब्दकोश को फ़्लैट करने की आवश्यकता हो सकती है। इस तरह कुछ कोशिश करें [http://stackoverflow.com/questions/6027558/flatten-nested-python- शब्दकोश-compressing-keys](httpoverstow.com/questions/6027558/flatten-nested-python- शब्दकोश- संपीड़न-कुंजी) –

उत्तर

10
>>> max(d, key=lambda x: d[x]['count']) 
'nationwide' 
+1

किंवदंती! इस – AlexZ

+2

के लिए लगभग धन्यवाद था .. यह कहना है कि आपका आंतरिक निर्देश सबसे बड़ा है (क्योंकि यह नेस्टेड शब्दकोशों पर भी विचार नहीं करता है) –

+1

जोरन: प्रत्येक बच्चे के लिए गिनती बढ़ जाती है ... – AlexZ

1

यह नेस्टेड शब्दकोश के लिए काम करना चाहिए:

कोड यह आसान लिपियों के लिए संलग्न करने के लिए बनाने के लिए नीचे है

def find_max(d, name=None): 
    return max((v, name) if k == "count" else find_max(v, k) for k, v in d.items()) 

>>> find_max(d) 
(9.0, 'nationwide') 
+1

जो काम नहीं करेगा मुझे नहीं लगता ... स्थानीय की एक महत्वपूर्ण गिनती है और अधिक प्रविष्टियां हैं जिनके प्रत्येक की अपनी गिनती है ... –

+0

@ जोरनबेस्ले निश्चित – defuz

+0

अच्छा काम :) ... –

संबंधित मुद्दे