2012-04-15 8 views
3

Im Augenblick für eine Informatik endgültig studiert, und ich verstehe nicht, wie das überhaupt funktioniert:Was ist L [L [3]] in einer Liste?

 
L = [ 8, 6, 7, 5, 3, 0, 9 ] 

30. L[L[3]] - 1 is? 
(A) * -1 
(B) an error 
(C) 8 
(D) 4 
(E) 7 

Die Antwort ist -1 .. SO zu testen, wie das funktioniert I L [L [3 gerade getan haben ]] und die Antwort ist 0, dann habe ich L [L [4]] und thar ist gleich 5, dann habe ich L [L [1]] gemacht, das gab eine 9, aber wenn ich L [L [2] gehe, bekomme ich ein Listenindex außerhalb des Bereichsfehlers. Im darüber hinaus verwirrt hier kann jemand bitte helfen?

Antwort

11

L[3] ist 5, L[L[3]] ist L[5]0 ist, und 0 - 1 ist -1.

0

Lassen Sie uns die Antwort zu Fuß durch durch die Zwischenergebnisse zeigen, auch wenn sie nicht angezeigt werden:

L[3] 5, L[L[3]] daher L[5] = 0 ist, und L[L[3]] -1 = 0-1 = -1

0

L [2] = 7 und die Liste hat nur 7 Elemente, das ist Indice 0..6. Also Zugriff auf L [L [2]] = L [7] ist außerhalb des Bereichs ...

0

es heißt, holen Sie sich die Nummer bei l [3], die 5 ist, dann verwenden Sie diese, so erhalten Sie die Nummer bei l [5] was 0 ist, dann subtrahiere 1 .... ta dah!

4

Diese Art von Problemen werden am besten von Zeit zu Zeit von innen nach außen ausgeführt.

Also gibt L [3] Sie 5. Verwenden Sie diesen Wert (5) wieder als Index in die Liste, dh L [5] und das gibt Ihnen 0. Schließlich ist 0 - 1 = -1, Ihre Antworten.

2

Dies ist analog zu function composition mit Math Funktionen (z. B. f (g (x))).

Wir nehmen unsere Liste und arbeiten von innen nach außen, so erhalten wir L[L[3]] -> L[5] -> 0, und davon eins abziehen, um -1 zu bekommen.

Wenn Sie die nächste For-Instance nehmen, L[L[1]] = L[6] -> 9. Schließlich, L[L[2]] = L[7] -> IndexError.

Es geht darum, eine zusammengesetzte Indizierung (oder Funktion, für diese Angelegenheit) von innen nach außen zu bewerten.

0

Hier ist die Antwort in den Schritten unterteilt:

L = [8, 6, 7, 5, 3, 0, 9]

L [L [3]] - 1 = -1

L [3] = 5, also L [L [3]] = L [5] = 0