ich stehe vor einem kleinen Mysterium... Aus einer Listr, die Objekte enthält, möchte ich einzelne Einträge löschen, sofern vorhanden. Wenn die Liste strings enthält ist das auch kein Problem, aber so wie ich sie mit eigenen Objekten fülle, passieren seltsame Dinge...
Hier der Code:
Code: Alles auswählen
class M:
def __init__( self, num ):
self.num = num
# irgend eine string repraesentation
def __str__( self ):
if self.num == 1:
return '1'
elif self.num == 2:
return '2'
elif self.num == 3:
return '3'
def __cmp__( self, other ):
return str( self ) == str( other )
orig = [M(1),M(2),M(3)]
for o in orig:
print 'lst ', o
print '\n'
orig.remove( M(3) )
for o in orig:
print 'lst ', o
print '\n'
orig.remove( M(1) )
for o in orig:
print 'lst ', o
print '\n'
orig.remove( M(2) )
for o in orig:
print 'lst ', o
print '\n'
orig.remove( M(0) )
for o in orig:
print 'lst ', o
print '\n'
Code: Alles auswählen
lst 1
lst 2
lst 3
lst 2
lst 3
lst 3
Traceback (most recent call last):
File "main.py", line 216, in <module>
orig.remove( M(0) )
ValueError: list.remove(x): x not in list
Weiß jemand wie sich das gewünschte Objekt aus der Liste löschen lässt?
lg lunas