Ich versuche, eine Abfrage zu durchlaufen, ein Wörterbuch für jedes Element zu erstellen und dann jedes Wörterbuch zu einer Liste hinzuzufügen. Ich muss überprüfen, ob das Wörterbuch existiert und dann den Wert aktualisieren, wenn dies der Fall ist. Mein Problem ist, dass ich nicht weiß, wie man die Liste nach dem Betrag sortiert.Richtiger Weg zum Erstellen einer Liste von Wörterbüchern und Sortieren nach Wert in Wörterbüchern
Vielleicht ist dies nicht der beste Weg, um dicts zu erstellen?
Hier ist mein Code:
#Create list
my_list_of_dicts = []
#Create dict object
my_dict = {}
#Find every user in query_set
for item in query_set: #query_set is a list of objects from a Django query: <QuerySet [<User: name123>, <User: name123>, <User: name456>, <User: name789>,]>
if item.name in my_dict:
#Update object
my_dict[item.name]['amount'] += item.amount
else:
#Create object
my_dict[itemrecruiter] = {'amount': item.amount, 'not-important' item.foo}
#Add dict to list
recruiters.append(my_dict)
print(my_list_of_dicts)
>>> [{"name123": {"amount": 8, 'not-important': 'foo123'}, "name456": {"amount": 3, 'not-important': 'foo456'}, "name789": {"amount": 20, 'not-important': 'foo789'}}]
In Ihrem Beispiel in der Liste nur ein Element haben, ist das, was du bist versuchen zu erreichen? oder Sie wollen eine Liste von '{" name123 ": {" betrag ": 8,}}' –
Bitte geben Sie das Beispiel query_set an. Es erklärt das Problem besser. –
Ich könnte etwas falsch gemacht haben! Ich möchte eine Liste mit jedem Namen haben und dann den Betrag mit dem Namen verknüpfen. Ich bin offen für den Vorschlag, dies besser zu machen! –