मैं एक dict जो कुछ इस तरह चला जाता है है:मूल्यों जो कुंजी की अधिकतम संख्या है की पहचान करना
ip = { "1" : ['a','b'],
"2" : ['a','c'],
"3" : ['a','b','c','d'],
"4" : ['a','b','d','e']}
मैं जो मूल्य सेट में आइटम की उनके खिलाफ कुंजियों की अधिकतम संख्या है खोजने की जरूरत है और अवरोही क्रम में सूचीबद्ध वस्तुओं भी है।
op = {"a":4,"b":3,"c":2,"d":2,"e":1}
लेकिन मैंने कहीं पढ़ा है कि dict एक क्रमबद्ध तरीके से नहीं किया जा सकता है, तो उत्पादन भी एक टपल हो सकता है: उत्पादन कुछ तरह होगा
op = [('a', 4), ('b', 3), ('c', 2), ('d', 2), ('e', 1)]
हम dict के माध्यम से पुनरावृति कर सकते हैं और मूल्य सेट में से प्रत्येक आइटम के लिए परिणाम उस आइटम के लिए defaultdict
में परिणाम देता है।
op = defaultdict(int)
for k,v in ip.iteritems():
for item in v:
op[item]+=1
op = sorted(op.items(), key=lambda x: x[1], reverse=True)
क्या नेस्टेड से ऐसा करने का एक तेज़/बेहतर तरीका है?
आप उदाहरण के लिए अपने अपेक्षित आउटपुट दे सकते हैं? –
वांछित आउटपुट जोड़ा गया .. – nektar
ऑर्डर किए गए शब्दकोश के रूप में ऐसी चीज है ... संग्रह संग्रह से ऑर्डर डिक्टर्ड '। –