ich habe ein etwas kniffliges Problem. Ich habe folgendes Dictionary:
Code: Alles auswählen
input = {
1:[['aaa', 124], ['bbb', 1],['ccc', 60], ['ddd', 2]],
2:[['eee', 62], ['fff', 124]],
3:[['ggg', 2], ['hhh', 68], ['iii', 124]],
4:[['kkk', 1], ['lll', 2], ['mmm', 124]],
}
Die Buchstaben stehen für verschiedene Werte. Interessant ist die Zahl. In dieser Zahl sind
Gültigkeitstage codiert. Dabei gibt es für jede mögliche Kombination der Wochentage einen Code.
Alle Codes können hier angesehen werden. In dieser csv-Tabelle ist die erste Spalte der Code und
die zweite Spalte die Gültigkeitsbeschreibung. Die dritte Spalte wird hierfür nicht benötigt.
Später werden die einzelnen Elemente grafisch ausgegeben. Alle Elemente mit dem gleichen
Gültigkeitscode werden dabei in eine Zeile geschrieben. Also müssen die einzelnen Elemente so
gruppiert werden, dass jeder Wochentag nur einmal ausgegeben wird. Die Reihenfolge sollte dabei
natürlich mit Montag beginnen und mit Sonntag enden.
Im Beispiel input hat vom Key 1 das erste Element eine Gültigkeit von Montag bis Freitag, das zweite
Element ist am Sonntag, das dritte Element Dienstag bis Freitag und das vierte Element
ist am Samstag gültig. Benötigt wird also eine Gültigkeitsangabe für jeweils Montag, Dienstag bis Freitag,
Samstag und eine für Sonntag. Es müssen immer alle Tage angegeben werden. Fehlt im Input ein Tag,
so wird ein leeres Element mit der entsprechenden Gültigkeit erstellt.
Für das Beispiel müsste der Output so aussehen:
Code: Alles auswählen
output = {
1:[['aaa', 64], ['aaa', 60], ['ccc', 60], ['ddd', 2], ['bbb', 1]],
2:[['fff', 64], ['fff', 60], ['eee', 60], ['eee', 2], ['', 1]],
3:[['hhh', 64], ['iii', 64], ['iii', 56], ['hhh', 4], ['iii', 4], ['ggg', 2], ['', 1]],
4:[['mmm', 124],['lll', 2],['kkk', 1]],
}
Ich hoffe, ich konnte mein Problem einigermaßen nachvollziebar erklären und mir kann jemand einen
Lösungsansatz geben.
Grüße
Mawilo