我现在正在学习计算机科学的期末考试,但我完全不理解这是如何工作的:
L = [ 8, 6, 7, 5, 3, 0, 9 ]
30. L[L[3]] - 1 等于什么? (A) * -1 (B) 错误 (C) 8 (D) 4 (E) 7
答案是-1。因此,为了测试它的工作原理,我只需执行 L[L[3]],答案是0,然后我执行 L[L[4]],结果等于5,接着我执行 L[L[1]],得到了9,但如果我执行 L[L[2]],就会出现一个列表索引超出范围的错误。我非常困惑,请有人帮帮我吗?
我现在正在学习计算机科学的期末考试,但我完全不理解这是如何工作的:
L = [ 8, 6, 7, 5, 3, 0, 9 ]
30. L[L[3]] - 1 等于什么? (A) * -1 (B) 错误 (C) 8 (D) 4 (E) 7
答案是-1。因此,为了测试它的工作原理,我只需执行 L[L[3]],答案是0,然后我执行 L[L[4]],结果等于5,接着我执行 L[L[1]],得到了9,但如果我执行 L[L[2]],就会出现一个列表索引超出范围的错误。我非常困惑,请有人帮帮我吗?
L[3]
是 5
,L[L[3]]
是 L[5]
是 0
,而 0 - 1
是 -1
。
让我们通过展示中间结果来解答,即使它们没有被显示出来:
L[3]
是 5,因此 L[L[3]]
是 L[5] = 0
,而 L[L[3]] -1 = 0-1 = -1
L[2] = 7,但列表只有7个元素,即索引0..6。因此访问L[L[2]] = L[7]超出范围...
它说,获取l[3]处的数字,即5,然后使用它,因此获取l[5]处的数字,即0,然后减去1.... ta dah!
以下是步骤分解的答案:
L = [8, 6, 7, 5, 3, 0, 9]
L[L[3]] - 1 = -1
L[3] = 5,因此 L[L[3]] = L[5] = 0