Asignar múltiples valores de una lista

Tengo curiosidad por saber si hay una forma “pythonic” de asignar los valores en una lista a los elementos? Para ser más claro, estoy pidiendo algo como esto:

myList = [3, 5, 7, 2] a, b, c, d = something(myList) 

Así que eso:

 a = 3 b = 5 c = 7 d = 2 

Estoy buscando otra opción mejor que hacer esto manualmente:

 a = myList[0] b = myList[1] c = myList[2] d = myList[3] 

Simplemente escríbalo:

 >>> a,b,c,d = [1,2,3,4] >>> a 1 >>> b 2 >>> c 3 >>> d 4 

Python emplea el assignment unpacking cuando se le asigna un iterable a múltiples variables como la anterior.

En Python3.x esto se ha extendido, ya que también puede descomprimir en una cantidad de variables que es menor que la longitud del iterable utilizando el operador estrella:

 >>> a,b,*c = [1,2,3,4] >>> a 1 >>> b 2 >>> c [3, 4] 

Totalmente de acuerdo con la respuesta de NDevox.

 a,b,c,d = [1,2,3,4] 

Creo que también vale la pena mencionar que si solo necesita una parte de la lista, por ejemplo, solo el segundo y último elemento de la lista, podría hacer

 _, a, _, b = [1,2,3,4] 

a, b, c, d = myList es lo que quieres.

Básicamente, la función devuelve una tupla, que es similar a una lista, porque es una iterable.

Esto funciona con todos los iterables por cierto.