9.2. Asignación de tuplas

De vez en cuando, es útil intercambiar los valores de dos variables. Para hacerlo con sentencias de asignación convencionales debemos usar una variable temporal. Por ejemplo, para intercambiar a y b:

   1: >>> temp = a
   2: >>> a = b
   3: >>> b = temp

Si tenemos que hacer esto a menudo, esta aproximación resulta aparatosa. Python proporciona una forma de asignación de tuplas que soluciona este problema elegantemente:




   1: >>> a, b = b, a

El lado izquierdo es una tupla de variables, el lado derecho es una tupla de valores. Cada valor se asigna a su respectiva variable. Todas las expresiones del lado derecho se evalúan antes de las asignaciones. Esta característica hace de la asignación de tuplas algo muy versátil.


Naturalmente, el número de variables a la izquierda y el número de valores a la derecha deben ser iguales:




   1: >>> a, b, c, d = 1, 2, 3
   2: ValueError: unpack tuple of wrong size
0