Haben Python-Listen eine Entsprechung zu dict.get?

7

Ich habe eine Liste von ganzen Zahlen. Ich möchte wissen, ob die Zahl 13 darin erscheint und, wenn ja, wo. Muss ich die Liste zweimal durchsuchen, wie im folgenden Code?

%Vor%

Im Fall von Wörterbüchern gibt es eine get -Funktion, die die Mitgliedschaft ermittelt und die Suche mit derselben Suche durchführt. Gibt es etwas Ähnliches für Listen?

    
Tommy Herbert 16.03.2009, 13:04
quelle

5 Antworten

12

Sie haben es selbst mit der Methode index() beantwortet. Das wird eine Ausnahme auslösen, wenn der Index nicht gefunden wird, also fangen Sie einfach folgendes ein:

%Vor%     
unwind 16.03.2009, 13:07
quelle
7

Es sieht so aus, als müssten Sie nur die Ausnahme abfangen ...

%Vor%     
quelle
3

Nein, es gibt keine direkte Übereinstimmung für das, wonach Sie gefragt haben. Es gab eine Diskussion eine Weile zurück auf der Python Mailing-Liste darüber, und die Menschen kamen zu dem Schluss, dass es wahrscheinlich ein Code-Geruch war, wenn Sie das benötigten. Verwenden Sie stattdessen ein dict oder set , wenn Sie die Mitgliedschaft auf diese Weise testen müssen.

    
John Feminella 16.03.2009 13:12
quelle
2

Sie können die ValueError-Ausnahme abfangen, oder Sie können Folgendes tun:

%Vor%

(Python 2.5 +)

Übrigens. Wenn Sie eine große Menge ähnlicher Operationen ausführen möchten, sollten Sie inverse Wörterbücher erstellen - & gt; Index.

%Vor%     
vartec 16.03.2009 13:13
quelle
-1

Gib einfach, was du in einer Funktion hast und benutze es :)

Sie können entweder if i in list: return list.index(i) oder try/except verwenden, abhängig von Ihren Einstellungen.

    
kender 16.03.2009 13:11
quelle

Tags und Links