2016-05-22 4 views
2

Gibt es einen besseren Weg, um die Duplikate zu entfernen und nur den Mindestwert für jeden Schlüssel in meinem Wörterbuch zu behalten, ohne in das Wörterbuch zu schlüpfen und ohne ein neues Wörterbuch zu erstellen, um es anzuhängen?Entfernen Sie die Duplikate aus der Werteliste eines Schlüssels in einem Wörterbuch?

dic2 = {} 
dic = {0: [4, 4, 4, 4, 5], 1: [3, 4, 4, 4]} 
for key, value in dic.items(): 
    min_value = min(value) 
    dic2[key] = min_value 
print(dic2) 

Ausgang

{0: 4, 1: 3} 

Antwort

5

ein Wörterbuch Verständnis Verwendung:

dic2 = {k: min(v) for k, v in dic.items()} 
+0

Ist das schneller? Es ist kürzer;) –

+0

Es ist eine Antwort auf die Frage. Weder "kurz" noch "schnell" waren Teil davon. –

+0

True;), das OP fügte das Wort nur schnell als Kommentar zu meinem Vorschlag hinzu. Ich meinte "besser" als die ursprüngliche Frage. –

1

Ich würde mit Ihrer Lösung vollkommen zufrieden sein. Die zwei Wörterbücher sind nicht die gleichen, sie sind verschieden, so dass ich nicht den Vorteil in Änderung das Original sehen. Ich würde jedoch um eine Linie reduzieren:

dic2 = {} 
dic = {0: [4, 4, 4, 4, 5], 1: [3, 4, 4, 4]} 
for key, value in dic.items(): 
    dic2[key] = min(value) 
print(dic2) 
+0

für große Wörterbücher braucht es mehr Zeit, deshalb habe ich versucht, es schnell zu machen – Joe

Verwandte Themen