2017-04-20 1 views
1

habe ich eine ListeWert für list.index (Wert) für Indexwert 16 wird auf 9

array_list=[-37, -36, -19, -99, 29, 20, 3, -7, -64, 84, 36, 62, 26, -76, 55, -24, 84, 49, -65, 41] 

wenn ich versuche auf den Index durch Drucken Index und den Wert iterieren assoziiert unten Code

for value in array_list: 
    print(array_list.index(value), array_list[array_list.index(value)]) 

ich erhalte den folgenden Ausgang:

0 -37 
1 -36 
2 -19 
3 -99 
4 29 
5 20 
6 3 
7 -7 
8 -64 
9 84 
10 36 
11 62 
12 26 
13 -76 
14 55 
15 -24 
9 84 # I want the value as 16 instead of 9 (position of 84 in list) 
17 49 
18 -65 
19 41 

Bei 16 Index wird es mir Wert für den Index als 9.gebenIch bin mir nicht sicher, warum ich 16 als Indexwert angeben sollte.

Wie kann ich das beheben?

+0

Kann jemand vorschlagen, warum es so verhält? – user3453044

+2

Ja, ich bin sicher, dass die Dokumentation auf 'list.index' kann. –

+0

Index gibt den Index der ersten Instanz des Werts zurück. – roganjosh

Antwort

0

Sie fragen nach dem Index des ersten Eintrags mit diesem Wert (und dann mit diesem Index). Wenn Sie den Index suchen möchten, bei dem die Iteration (für die Schleife) gefunden wurde, versuchen Sie for i,value in enumerate(array_list). Das Iterieren über eine Liste ergibt die darin enthaltenen Elemente, nicht etwas, das sich auf die Liste bezieht.

4

list.index(..) gibt den Wert des ersten Vorkommens des Elements in list zurück. Zum Beispiel:

>>> my_list = [1,2,3,1,2,5] 
>>> [(i, my_list.index(i)) for i in my_list] 
[(1, 0), (2, 1), (3, 2), (1, 0), (2, 1), (5, 5)] 

# Here, 0th index element is the number 
#  1st index element is the first occurrence of number 

Wenn Sie die Position des Elements während der Iteration erhalten möchten, sollten Sie die Verwendung enumerate für Iteration sein. Zum Beispiel:

>>> [(i, n) for n, i in enumerate(my_list)] 
[(1, 0), (2, 1), (3, 2), (1, 3), (2, 4), (5, 5)] 

# Here, 0th index element is the number 
#  1st index element is the position in the list 

Sie Python's List Document beziehen, die sagen:

list.index (x)

Rückkehr des Index in der Liste des ersten Elements, das Wert ist x. Es ist ein Fehler, wenn es keinen solchen Artikel gibt.

Verwandte Themen