Reduzieren Sie die Liste von Python-Objekten zu dict-Objekt.id -> Objekt
Haben Sie die Liste der Objekte und jeder von Ihnen hat eine id
Eigenschaft.
Hier ist mein Weg zu konvertieren, um dict wo die Schlüssel sind-ids und Werte sind Objekte:
reduce(
lambda x,y: dict(x.items() + { y.id : y}.items()),
list,
{}
)
Ihnen eine bessere Weise, es zu tun.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Python 3.x:
Sowohl Python 3.x und Python 2.4+:
(x.id, x) for x in object_list
ist eine generator-comprehension (und, schön, muss nicht sein, gehüllt in Klammern, wie in einer Liste Verständnis muss in Klammern eingeschlossen werden, wenn es verwendet wird als einziges argument für eine call; das bedeutet natürlich auch, dass in anderen Umständen, die der Ausdruck, den ich benutzt habe, um sein((x.id, x) for x in object_list)
). Im Gegensatz zu einer Liste Verständnis, wird es nicht schaffen, eine aktuelle Liste aller Elemente, und ist somit effizienter in Situationen wie dieser.Als seitliche Anmerkung, die Python hat eine eingebaute Methode
id()
:Also, wenn Sie wollten lassen Sie Python behandeln, die ids auf seine eigene, Sie könnte es tun, wie:
oder