Seite 1 von 1

Objektattribute aus Liste mit Objekten auslesen

Verfasst: Donnerstag 22. Juli 2021, 14:22
von ninaebez
Hallo zusammen,

die Frage ist wahrscheinlich total trivial, ich stehe aber auf dem Schlauch und komme nur auf umständliche Lösungen, die nicht wirklich "pythonic" sind:

Ich habe eine Liste aus Objekten, bspw. Mitarbeiterobjekten. Die Objekte haben ihrerseits Attribute, bspw. mitarbeiter.name und mitarbeiter.id.

Ich möchte nun diese Liste aus Mitarbeiterobjekten nach einer eineindeutigen id durchsuchen und den Namen des Mitarbeiters mit der entsprechenden Personalnummer erhalten.

Ich dachte an:

Code: Alles auswählen

index = [mitarbeiter.id for mitarbeiter in objektliste].index(id)
objektliste[index].name
Geht das auch schöner ohne den Umweg über den index der Liste?

Danke und viele Grüße!

ninaebez

Re: Objektattribute aus Liste mit Objekten auslesen

Verfasst: Donnerstag 22. Juli 2021, 14:38
von einfachTobi
Wenn sie eindeutig ist, sollte das funktionieren:

Code: Alles auswählen

next(mitarbeiter.name for mitarbeiter in objektliste if mitarbeiter.id == 4711)

Re: Objektattribute aus Liste mit Objekten auslesen

Verfasst: Donnerstag 22. Juli 2021, 14:56
von peterpy
Hallo ninaebez,
über ein Dictionary gehts viel einfacher.
Statt dass Du die Daten in eine Liste einliest, schreib sie in ein Dictionary.

Code: Alles auswählen

mitarbeiter = {id : (name, vorname, und, was, sonst, noch, dazu, gehoert)}
Dann kannst Du über das Dict zugreifen.

Code: Alles auswählen

der_mitarbeiter = mitarbeiter[id]
Gruss Peter

Re: Objektattribute aus Liste mit Objekten auslesen

Verfasst: Donnerstag 22. Juli 2021, 15:06
von ninaebez
einfachTobi hat geschrieben: Donnerstag 22. Juli 2021, 14:38 Wenn sie eindeutig ist, sollte das funktionieren:

Code: Alles auswählen

next(mitarbeiter.name for mitarbeiter in objektliste if mitarbeiter.id == 4711)
Das ist doch sehr sexy ist doch das. Danke!