Ich habe ein Wörterbuch zu erstellen, die wie folgt aussieht:Python: effiziente Möglichkeit, eine Liste von dict Werten mit einer bestimmten Reihenfolge
myDict = { "age":value1,"size":value2,'weigth':value3 ... }
Und ich einfach aus diesem Wörterbuch aber in einiger Reihenfolge will, um eine Liste von Werten definiert durch eine Liste:
order_list = ["age","weigth","size", ... ]
So wird das Ergebnis sein:
result_list = [value1,value3,value2, ... ]
der einfachste Weg zu durchlaufen ist die order_list
auf diese Weise:
for key in order_list:
result_list.append(myDict[key])
Aber ich glaube, dass es eine effizientere und saubere Art und Weise zu tun, was ich versuche, da diese Methode zu tun ist teuer aus zwei Gründen:
- Die Spaltenliste sehr lang ist
- ich dieses 1000 Mal tun müssen/Sekunde
Verwandte Gewinde mit einem Benchmark: http://stackoverflow.com/questions/18453566/python-dictionary-get-list-of-values-for- Liste der Schlüssel. – alecxe
Ich denke nicht, Wörterbücher sind Hashtabellen, also ist der Abruf O (1) und die Gesamtkomplexität ist O (n), was optimal ist. Also solltest du wahrscheinlich etwas völlig anderes ausprobieren. – BlackBear
Nein, wie @BlackBear zeigt, wirst du nicht besser als 'O (n)'. Ein wenig Verständnis könnte als sauberer angesehen werden, verbessert jedoch nicht die Leistung. – schwobaseggl