Seite 1 von 1

Dict Sortieren

Verfasst: Mittwoch 7. Dezember 2016, 16:30
von reneschmidt
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.

Re: Dict Sortieren

Verfasst: Mittwoch 7. Dezember 2016, 17:13
von Sirius3
@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'])

Re: Dict Sortieren

Verfasst: Mittwoch 7. Dezember 2016, 17:35
von reneschmidt
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?

Re: Dict Sortieren

Verfasst: Mittwoch 7. Dezember 2016, 17:38
von BlackJack
@reneschmidt: Das ist eine Liste mit Wörterbüchern als Elementen. Da ist absolut nichts ungewöhnliches dran. Wonach willst Du da googlen?

Re: Dict Sortieren

Verfasst: Mittwoch 7. Dezember 2016, 19:45
von /me
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.