Грамматика Python определяет, как он оценивается, поскольку он создает синтаксическое дерево вашей программы.
Не вдаваясь в технические детали, такая индексация рекурсивна .Это означает, что:
foo[bar][qux]
- это сокращение от:
(foo[bar])[qux]
, поэтому такие индексы оцениваются слева направо.
Он оценивается как:
list1 = [1, 2, 3, 4]
temp = list1[1:] # create a sublist starting from the second item (index is 1)
element = temp[1] # obtain the second item of temp (index is 1)
(конечно, в действительности не создается temp
переменная , но сам список представляет собой реальный объект , хранящийся в памяти и, следовательно, также может изменитьсясостояние и т. д.).
Итак, сначала мы срезаем, начиная со второго элемента, в результате получается список [2, 3, 4]
, а затем мы получаем второй элемент , который список, так что 3
.