Dict Sortieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
reneschmidt
User
Beiträge: 48
Registriert: Montag 4. Januar 2016, 15:14

Hallo zusammen,

ich habe mir schon die Finger wund gesucht und habe nun eine Frage:

In einem Dict, dass ich wie folgt aufbaue:

Code: Alles auswählen

lszeilen.update({ein[1]:{"Position":ein[2],
	"Artikelnummer": str(ein[3]),
	"Bezeichnung": str(ein[4]),
	"Menge":str(ein[5]),
	"Herkunft":"db"}
})
habe ich die Zeilen für einen Lieferschein.

"ein" ist in dem Fall die Rückgabe aus einer MySQL DB.
ein[1] ist die ID (PK) aus der Datenbank.
Nun meine Frage: zur weiteren:

wie sortiere ich das Dict anhand der "Position"

Viele Dank.
Sirius3
User
Beiträge: 17747
Registriert: Sonntag 21. Oktober 2012, 17:20

@reneschmidt: ein Wörterbuch ist unsortiert, sortieren macht also keinen Sinn. Um ein Element in ein Wörterbuch zu schreiben, benutzt man keine update, sondern die eckigen Klammern. Aber wenn Du sowieso sortieren willst, dann ist eine Liste die richtige Datenstruktur:

Code: Alles auswählen

lszeilen = []

lszeilen.append({"ID": ein[1], 
    "Position":ein[2],
    "Artikelnummer": ein[3],
    "Bezeichnung": ein[4],
    "Menge": ein[5],
    "Herkunft": "db",
})

lszeilen.sort(key=lambda p: p['Position'])
reneschmidt
User
Beiträge: 48
Registriert: Montag 4. Januar 2016, 15:14

Vielen Dank erst einmal für den Hinweis.

Ich habe noch nie so ein Konstrukt, wie du es da beschriebst, noch nie gesehen und Frage mich nun wie ich da drauf überhaut zugreife kann? Kannst du evtl ein Stichwort geben zum Googlen?
Ist das eine Liste in einer Liste?
BlackJack

@reneschmidt: Das ist eine Liste mit Wörterbüchern als Elementen. Da ist absolut nichts ungewöhnliches dran. Wonach willst Du da googlen?
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

reneschmidt hat geschrieben:Ich habe noch nie so ein Konstrukt, wie du es da beschriebst, noch nie gesehen und Frage mich nun wie ich da drauf überhaut zugreife kann?
Das sind Dictionaries in einer Liste. Du hast selber Dictionaries in einem Dictionary erstellt. So dramatisch anders ist das Konzept jetzt nicht, abgesehen davon, dass die Liste als äußerer Container für deinen Anwendungsfall besser geeignet ist als ein Dictionary.
Antworten