Indices aninhados

Estou vendo Python agora. Não entendi isso:

Tenho uma lista: l=[1, 2, 3]
Fazer a troca: l[l[1]] = 5
Saída : [1, 2, 5]

Qual a lógica?

Acho que analisando passo a passo faz mais sentido:

>>> lista = [1,2,3]
>>> lista[0]
1
>>> lista[1]
2
>>> lista[2]
3
>>> lista[lista[1]]  # note que lista[lista[1]] = lista[2] (já que lista[1] = 2)
3
>>> lista[lista[1]] = 5   
>>> lista
[1, 2, 5]
>>> 

é só substituir os valores…

Então aqui é feito uma substituição? É atribuído o valor 2 para a expressão lista[1]? O valor 2 vira índice lista[2]?

Isso

Ok, obrigado, ajudou muito.