Gegeben eine Liste ["foo", "bar", "baz"]
und ein Element in der Liste "bar"
, wie erhalte ich seinen Index 1
?
Jedoch hat JavaScript die Philosophie, dass seltsame Ergebnisse besser sind als Fehler, daher macht es Sinn, -1 zurückzugeben, aber in Python kann dies einen schwer zu verfolgenden Fehler verursachen, da -1 ein Element vom Ende der Liste zurückgibt.
16 Stimmen
Übersetzung: Kehren Sie zurück: [1] Der niedrigste Index im Falle mehrerer Instanzen von
"bar"
, [2] Alle Indizes von"bar"
?7 Stimmen
A) Ist es garantiert, dass der Eintrag in der Liste ist, oder wie sollten wir den Fehlerfall behandeln? (None zurückgeben/ ValueError werfen) b) Sind Listeneinträge garantiert einzigartig, und sollten wir den ersten Index eines Treffers zurückgeben oder alle Indizes?
1 Stimmen
Betrachten Sie die Antworten mit numpy-Integration, numpy-Arrays sind weitaus effizienter als Python-Listen. Wenn die Liste kurz ist, ist es kein Problem, eine Kopie davon aus einer Python-Liste zu machen. Wenn nicht, sollten Sie vielleicht erwägen, die Elemente gleich von Anfang an in einem numpy-Array zu speichern.
1 Stimmen
Ich stimme dafür, diese Frage zu schließen (aus Protest), weil es bereits 42 nicht gelöschte Antworten gibt (und 16 weitere gelöschte) für eine einfache, Einzeiler-Referenzfrage, bei der fast alle den gleichen Kernfunktion im verwenden (wie sie es sollten, weil es der einzige vernünftige und gesunde Ansatz für das Problem ist und alles darum herum nur Fehlerüberprüfung oder kreatives Neuinterpretieren der Spezifikation ist, was immer noch nur einen anderen vernünftigen, gesunden Ansatz zum erweiterten Problem hinterlässt).
0 Stimmen
Es gibt keine realistische Chance, dass in zukünftigen Versionen von Python ein besserer Ansatz möglich wird, da der vorhandene Ansatz bereits das Aufrufen einer einzigen integrierten Methode in der Liste ist - so einfach wie es nur geht.