2016-07-13 14 views
0

Wie finde ich den Maximalwert der Listen in einem Wörterbuch von Listen ohne eine Schleife? Mein Wörterbuch wie folgt aussieht:Suche im Wörterbuch von Listen Maximalwert

data = {'key1': list1, 'key2': list2, ... 'keyn': listn} 

wenn ich benutze:

m = max(data.iterkeys(), key=lambda k: data[k]) 

der Ausgang ist:

m = 'keyn' 

, die ich will nicht zu haben.

Antwort

2

Iterate durch die Elemente in jeder Liste in einem Generator Ausdruck:

m = max(i for v in data.values() for i in v) 
+0

Vielen Dank! Ich wusste, dass ich so war, aber (ich bin neu bei Python) Ich habe es nicht bekommen – themacco

+0

@themacco Sie könnten etwas lesen [Generator Expressions vs. List Comprehension] (http: // stackoverflow. com/questions/47789/Generator-Ausdrücke-vs-Liste-Verständnis) –

+0

Ich werde es tun, danke! – themacco

1
myDict = {'key1': [1,2,3], 'key2': [4,5,6]} 
maxValue = max((max(myDict[key]) for key in myDict)) 

Ausgang: 6

wenn Ihr neue zu Python, hier ist eine viel lesbare Weise, wie Moses Koledoye tat es:

for v in myDict.values(): 
    for i in v: 
     m = i if i > m else m 
0

Sie können den maximalen Wert wie folgt finden. Ohne Verwendung einer Schleife.

Aber diese Antwort ist gültig, wenn alle Werte iterierbar sind.

In [1]: myDict = {'key1': [1,2,3], 'key2': [4,5,6]} 
In [2]: max(max(myDict.values())) 
Out[1]: 6 
Verwandte Themen