2012-04-15 2 views
3

Im изучая для науки финала компьютера прямо сейчас, и я не понимаю, как это работает на всех:Что такое 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 .. SO, чтобы проверить, как это работает, я просто сделал L [L [3 ]], а ответ равен 0, тогда я сделал L [L [4]], а thar равен 5, тогда я сделал L [L [1]], который дал 9, но если я иду L [L [2]], я получаю ошибка индекса индекса вне диапазона. Я здесь не смущен. Кто-нибудь может помочь?

ответ

11

L[3] является 5, L[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 да!

4

Эти проблемы лучше всего работают на один шаг в момент, изнутри.

Итак, L [3] дает вам 5. Используйте это значение (5) в качестве индекса в списке снова, то есть L [5], и это даст вам 0. Наконец, 0 - 1 = -1, ваш ответ.

2

Это аналогично function composition с математическими функциями (например, f (g (x))).

Мы берем наш список и работаем из наизнанку, поэтому получаем L[L[3]] -> L[5] -> 0 и вычитаем один из них, чтобы получить -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

Смежные вопросы