2012-04-15 159 views
3

林現在攻讀計算機科學的決賽,我不明白這是如何工作的一切:列表中的L [L [3]]是什麼?

 
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 

答案是-1 ..因此,測試是如何工作的我只是做了L [L [3 ]]和答案是0,然後我做L [L [4]]和thar等於5,然後我做L [L [1]]給出了9,但是如果我去L [L [2]]我得到列表索引超出範圍錯誤。我在這裏感到困惑任何人都可以幫忙嗎?

回答

11

L[3]5L[L[3]]L[5]0,和0 - 1-1

0

讓我們穿行答覆表示中間結果,即使它們是不顯示:

L[3]是5,因此L[L[3]]L[5] = 0,和L[L[3]] -1 = 0-1 = -1

0

L [2] = 7,該列表只有7個元素,即0..6。因此,訪問L [L [2]] = L [7]超出範圍...

0

它說,得到數字l [3]這是5,然後使用它,所以得到數字在l [5]它是0,然後減去1 .... ta dah!

4

這些問題最好從內到外一步一步地完成。所以,L [3]給你5.再次使用這個值(5)作爲列表中的索引,即L [5],這會給你0最後,0-1 = -1,你的回答。

2

這類似於具有數學函數(例如f(g(x)))的function composition

我們把我們的清單和工作從內到外,所以我們得到L[L[3]] -> L[5] -> 0,並從中減去1得到-1

當你採取下一個例子,L[L[1]] = L[6] -> 9。最後,L[L[2]] = L[7] -> IndexError

這完全是關於從內到外評估組合索引(或函數)。

0

下面是答案在步驟分解:

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

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

L [3] = 5,所以L [L [3]] = L [5] = 0

相關問題