2016-11-20 2 views
0

GegebenEntfernungslistenobjekt gegebener Feldwert python

Dies ist nicht einfach Elemente aus einer Liste entfernen; seine Entfernung, sondern durch Feldwert

philani = Student(20, "Philani Sithole", "Male", [64,65]) 
sarah = Student(19, "Sarah Jones", "Female", [82,58]) 
fabian = Student(50, "Fabian Hamza", "Male", [50,52]) 


students = [philani, sarah, fabian] 

Wie kann ich das Objekt fabian aus Schülerliste gegeben, den Namen „Fabian Hamza“

gewünschten Ergebnisse zu entfernen:

students = [philani, sarah] 

Es versucht, diese

name = "Fabian Hamza" 
for i in xrange(len(students)): 
    if hasattr(students[i], name): 
     students.pop(i) 

Aber es funktioniert nicht

+0

Mögliche Duplikat [Entfernen von Elementen aus einer Liste in Python] (http://stackoverflow.com/questions/27443627/removing-elements-from-a-list-in-python) –

Antwort

1

können Sie eine Liste Verständnis verwenden, um zu erreichen, dass:

[s for s in students if s.name != 'Fabian Hamza'] 

Wenn Sie nur die Liste der Namen, versuchen:

[s.name for s in students if s.name != 'Fabian Hamza'] 
+0

Ich habe versucht, aber immer noch hat es nicht funktioniert - ich bin irgendwie neu, können Sie versuchen, mehr bitte zu erarbeiten ...? – Developer

+0

Es hat wirklich funktioniert! – Developer

+0

Sie können das gleiche mit einer einfachen for-Schleife tun, aber Listenverständnis ist eine sehr interessante Funktion, die Sie sich ansehen sollten. – ettanany