2017-03-08 4 views
0

Ich habe eine Variable str (a='ZpglnRxqenU'). Ich versuche, diesen Artikel strichweise mit dem Index dieses Artikels auszudrucken. Aber wenn eine einfache for-Schleife ausgeführt wird:Python-Index-Funktion ignorieren übereinstimmende Elemente

for i in a: 
    print(i,a.index(i)) 

der Ausdruck lautet wie folgt (ich den Fehler bolded habe ich erhalte)

Z 0 
p 1 
g 2 
l 3 
n 4 
R 5 
x 6 
q 7 
e 8 
**n 4** 
U 10 

Warum ist das zweite n nicht Index als 9? Gibt es eine Möglichkeit, die Sekunde richtig auf 9 zu indexieren?

Hinweis * Ich habe auch versucht, eine als Liste auszuführen und habe das gleiche Problem.

Antwort

0

In der Dokumentation (die Situation für Streicher ist ähnlich)

list.index (x)

Return der Index in der Liste des ersten Elements deren Wert x. Es ist ein Fehler, wenn es keinen solchen Artikel gibt.

Deshalb wird alle n s bis 4 (die niedrigste Position irgendeiner n in der Liste/string) auswertet.

Sie könnten tun:

for idx, val in enumerate(a): 
    print(val, idx) 
Verwandte Themen