Hallo liebe User,
ich habe mal wieder ein Problem. Und zwar möchte ich ein Objekt aus einer Liste von Objekten suchen und mit diesem dann arbeiten. Es z.B. aus der Liste löschen. Mir will aber nicht einfallen, wie ich das sinnvoll ohne Indexgebrauch oder ohne Schleifen hinbekomme.
Die Objekte, die sich in der Liste befinden sind wie folgt aufgebaut:
object.id
object.title
object.content
Jedes der Objekte hat andere Feldinhalte. Uebergeben wird aber nur die id.
Wie schaffe ich es jetzt, dass ich nur nach der ID suche, und mit dem entsprechenden Objekt arbeiten kann. Möglichst ohne Listen Indizes.
Mit freundlichem Gruß,
Kuttengeier
Nach Objekt in Liste suchen
Z. B. so
Das funktioniert, weil Python immer mit Referenzen arbeitet
Code: Alles auswählen
>>> class O(object):
def __init__(self, id_):
self.id = id_
self.content = 42
def __repr__(self):
return "<O id:%i content:%s>" % (self.id, self.content)
>>> liste = [O(1), O(2), O(3), O(4)]
>>> print liste
[<O id:1 content:42>, <O id:2 content:42>, <O id:3 content:42>, <O id:4 content:42>]
>>> objekte_mit_id_2 = [x for x in liste if x.id == 2]
>>> print objekte_mit_id_2
[<O id:2 content:42>]
>>> erstes_ergebnis = objekte_mit_id_2[0]
>>> print erstes_ergebnis
<O id:2 content:42>
>>> liste.remove(erstes_ergebnis)
>>> print liste
[<O id:1 content:42>, <O id:3 content:42>, <O id:4 content:42>]
- Kuttengeier
- User
- Beiträge: 27
- Registriert: Freitag 17. August 2007, 07:04
Ok, werde ich mir demnächst mal anschauen.
Habe leider die letzte Zeit wenig Zeit/Lust gehabt mich damit auseinanderzusetzen. Deswegen der etwas verspätetete beitrag. Aber ich werde von meinen erfolgen berichten
Mit freundlichem Gruß
Kuttengeier
Habe leider die letzte Zeit wenig Zeit/Lust gehabt mich damit auseinanderzusetzen. Deswegen der etwas verspätetete beitrag. Aber ich werde von meinen erfolgen berichten
Mit freundlichem Gruß
Kuttengeier