列表中的L [L [3]]是什么?

时间:2012-04-15 19:49:32

标签: python python-3.x

我现在正在攻读计算机科学专业,我完全不明白它是如何工作的:

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]]我得到一个列表索引超出范围错误。我在这里感到困惑任何人都可以帮忙吗?

7 个答案:

答案 0 :(得分:11)

L[3]5L[L[3]]L[5]00 - 1-1

答案 1 :(得分:4)

从内到外,这些问题最好一步到位。

所以,L [3]给你5.再次使用这个值(5)作为列表的索引,即L [5],这给你0.最后,0 - 1 = -1,你的答案

答案 2 :(得分:2)

这类似于带有数学函数的function composition(例如f(g(x)))。

我们从内到外查看列表并进行操作,因此我们得到L[L[3]] -> L[5] -> 0,并从中减去一个以获得-1

当您选择下一个for-instance时,L[L[1]] = L[6] -> 9。最后,L[L[2]] = L[7] -> IndexError

完全是从内到外评估复合索引(或函数)。

答案 3 :(得分:0)

让我们通过显示中间结果来完成答案,即使它们没有显示:

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

答案 4 :(得分:0)

L [2] = 7且列表只有7个元素,即indice 0..6。因此,访问L [L [2]] = L [7]超出范围......

答案 5 :(得分:0)

它说,得到l [3]的数字是5,然后使用它,所以得到l [5]的数字为0,然后减去1 .... ta dah!

答案 6 :(得分:0)

以下是按步骤分解的答案:

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

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

L [3] = 5,因此L [L [3]] = L [5] = 0