Ich habe ein verschachteltes Wörterbuch von Personen und Item-Bewertungen, mit Leuten als Schlüssel. Menschen können oder dürfen sich nicht teilen. Beispiel:
%Vor%Ich suche nach der einfachsten Möglichkeit, diese Beziehungen umzukehren, und habe ein neues verschachteltes Wörterbuch mit Elementen als Schlüssel. Beispiel:
%Vor%Was ist der beste Weg, dies zu tun? Ist es möglich mit einem Verständnis?
collections.defaultdict macht das ziemlich einfach:
%Vor%Ausgabe:
%Vor%Ich stimme völlig zu, dass Ryan Ginstroms Antwort der bevorzugte Weg ist, dies zu tun (für alle praktischen Zwecke).
Aber da die Frage auch explizit nachfragt:
Ist es möglich mit einem Verständnis?
Ich dachte, ich würde mit einem kurzen Beispiel darüber nachdenken, wie man das mit einem Listenverständnis macht (es könnte ein gutes Beispiel dafür sein, wie verschachtelte Listenkompressen die Lesbarkeit schnell verschlechtern können).
%Vor% Dies ist leicht zu tun (wie andere gezeigt haben), aber abhängig von Ihren Bedürfnissen sollten Sie auch berücksichtigen, dass für Daten mit mehreren Informationen, die Sie nach beliebigen Kriterien extrahieren möchten, eine Datenbank das beste Werkzeug sein könnte. Das integrierte Modul sqlite3
bietet eine Datenbank mit geringem Overhead, die je nach dem, was Sie tun, besser als ein verschachteltes Dict funktioniert.
Tags und Links python list-comprehension