2017-06-03 5 views
0

Ich habe eine Liste, in der jedes Element eine Schildkröte ist und versucht hat, eine Schildkröte aus der Liste zu entfernen und versteckt zu bekommen. Bisher habe ich es versucht:Eine Schildkröte aus einer Liste entfernen

Allerdings, wenn ich dies ausführen, bekomme ich eine Fehlermeldung, dass das Element nicht gefunden wird.

Antwort

0

Wenn lis ist eine Liste von Schildkröten und food ist eine Schildkröte dann lis.remove(food) verwenden. Die Fehlermeldung, die Sie erhalten, ist, weil lis.index(food) eine int (keine Schildkröte) ist und dass Int nicht in Ihrer Liste ist.

Wenn Sie vorhaben, viel zu entfernen, zu tun, ein Wörterbuch von Schildkröten könnte natürlicher sein als eine Liste. Das Entfernen aus einem Wörterbuch ist O(1), aber das Entfernen aus einer Liste ist O(n). Als allgemeine Faustregel gilt: Wenn Sie immer wieder Objekte aus der Mitte einer Liste entfernen (und/oder einfügen), sollten Sie sich fragen, ob es eine bessere Möglichkeit gibt, Ihr Ziel zu erreichen.

+0

Dies ist in einer for-Schleife, die durch eine Liste iteriert. Essen ist was ich verweise auf jedes Element wie in der Liste? Wird das noch funktionieren? – rbhog

+0

Es ist normalerweise eine schlechte Idee, '.remove()' beim Iterieren über eine Liste zu verwenden. Die Tatsache, dass Sie die Liste mit jedem 'remove()' kürzer machen, kann dazu führen, dass die Iteration Elemente auf kontraintuitive Weise überspringt. In jedem Fall, wenn Sie eine andere Frage haben, sollten Sie es als eine andere Frage, vorzugsweise eine, die ein [Mvce] hat, posten –

Verwandte Themen