ich wollte mal fragen, wie man aus einem (relativ großen) Wörterbuch
am effektivsten die besten Treffer herrausholt. Meine Implementierung derzeit ist ziemlich basic und an der Ausgabe müsste man eigentlich auch nochmal rumsortieren:
Code: Alles auswählen
import random
def top5(p):
def _einordnen(x,dic):
for key in dic.iterkeys():
if dic[key]<x.values()[0]:
val={key:dic.pop(key)}
dic.update(x)
dic=_einordnen(val,dic)
break
return dic
nearest=dict.fromkeys(range(5),0.0)
for i in p.iterkeys():
k={i:p[i]}
nearest=_einordnen(k,nearest)
return nearest
p=dict((i,random.randint(1,300)) for i in range(15))
print p
print top5(p)
{0: 143, 1: 138, 2: 236, 3: 254, 4: 263, 5: 156, 6: 225, 7: 217, 8: 121, 9: 200, 10: 41, 11: 190, 12: 267, 13: 239, 14: 35}
{3: 254, 4: 263, 12: 267, 13: 239}