Intercambio de elementos en listas en python

Tengo una lista y necesito intercambiar el primer elemento de la lista con el elemento máximo en la lista.

Pero, ¿por qué funciona el código 1 mientras que el código 2 no:

código 1:

a = list.index(max(list))
list[0], list[a] = list[a], list[0]

código 2:

list[0], list[list.index(max(list))] = list[list.index(max(list))], list[0]

¿Pensé que Python primero evaluaría el lado derecho antes de asignarlo a los nombres de la izquierda?

Respuestas a la pregunta(1)

Su respuesta a la pregunta