Verarbeitung von Daten aus einem Dictionary

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
claussal
User
Beiträge: 2
Registriert: Donnerstag 17. Dezember 2020, 11:16

Hallo zusammen,
ich habe eine Herausforderung für die Verarbeitung einer Liste und zeitgleich einem Dictionary.
Meine Liste und Dictionary sehen folgendermaßen aus:
mylist = ['MD1_Position_Vlan', 'MD1_Position_Komfort', 'MD1_Position_Sens', 'MD1_Lage_Vlan', 'MD1_Lage_Sens']
mydict = {'MD1_Position': 'Empfänger', 'MD1_Lage': 'Sender'}

Wie kann ich auch aus der mylist und mydict eine neue Liste (bspw. newlist) erzeugen die folgendermaßen aussehen würde:
newlist = ['Empfänger', 'Empfänger', 'Empfänger', 'Sender', 'Sender']
also die newlist weißt jedem 'MD1_Position_...' aus der mylist den aus mydict zugewiesenen Wert zu und gleiches für 'MD1_Lage'.

Wie kann ich dies automatisiert umsetzen?

Besten Dank für Eure Hilfe
Jankie
User
Beiträge: 592
Registriert: Mittwoch 26. September 2018, 14:06

z.B. mit rsplit()

Code: Alles auswählen

mylist = ['MD1_Position_Vlan', 'MD1_Position_Komfort', 'MD1_Position_Sens', 'MD1_Lage_Vlan', 'MD1_Lage_Sens']
mydict = {'MD1_Position': 'Empfänger', 'MD1_Lage': 'Sender'}

new_list = [mydict[x.rsplit('_', 1)[0]] for x in mylist]
print(new_list)
claussal
User
Beiträge: 2
Registriert: Donnerstag 17. Dezember 2020, 11:16

Jankie hat geschrieben: Donnerstag 17. Dezember 2020, 11:59 z.B. mit rsplit()

Code: Alles auswählen

mylist = ['MD1_Position_Vlan', 'MD1_Position_Komfort', 'MD1_Position_Sens', 'MD1_Lage_Vlan', 'MD1_Lage_Sens']
mydict = {'MD1_Position': 'Empfänger', 'MD1_Lage': 'Sender'}

new_list = [mydict[x.rsplit('_', 1)[0]] for x in mylist]
print(new_list)
Perfekt, vielen Dank!
Sirius3
User
Beiträge: 18274
Registriert: Sonntag 21. Oktober 2012, 17:20

`mylist` und `mydict` sind schlechte Namen. Das my trägt nicht zur Verständlichkeit bei und list und dict sind zu generisch; Variablennamen sollten etwas über den Inhalt aussagen.
`x` für ein Element von diesem mylist ist damit auch schlecht.
Antworten