Puedes devolver varios valores de una función en Python.

Para ello, devuelve una estructura de datos que contenga varios valores, como una lista que contenga el número de millas que se ejecutará cada semana.

def millas_por_correr(millas_minimas):
   semana_1 = millas_minimas + 2
   semana_2 = millas_minimas + 4
   semana_3 = millas_minimas + 6
   return [semana_1, semana_2, semana_3]
 
print(millas_por_correr(2))
# result: [4, 6, 8]

Las estructuras de datos en Python se utilizan para almacenar colecciones de datos, que se pueden devolver desde funciones. En este artículo, exploraremos cómo devolver varios valores de estas estructuras de datos: tuplas, listas y diccionarios.

Tuples

Una tupla es una secuencia ordenada e inmutable. Eso significa que una tupla no puede cambiar.

Utiliza una tupla, por ejemplo, para almacenar información sobre una persona: su nombre, edad y ubicación.

nancy = ("nancy", 55, "chicago")

Así es como escribirías una función que devuelve una tupla.

def persona():
   return "bob", 32, "boston"
 
print(persona())
# resultado: ('bob', 32, 'boston')

Observa que no usamos paréntesis en la declaración de devolución. Esto se debe a que puedes devolver una tupla separando cada elemento con una coma, como se muestra en el ejemplo anterior.

"En realidad, es la coma la que hace una tupla, no los paréntesis", señala la documentación. Sin embargo, se requieren paréntesis con tuplas vacías o para evitar confusiones

Aquí hay un ejemplo de una función que usa paréntesis () para devolver una tupla.

def persona(nombre, edad):
   return (nombre, edad)
print(person("henry", 5))
#resultado: ('henry', 5)

Lista

Una lista es una secuencia ordenada y mutable. Eso significa que una lista puede cambiar.

Puedes usar una lista para almacenar ciudades:

ciudades = ["Boston", "Chicago", "Jacksonville"]

O resultados de las pruebas:

resultados_de_pruebas = [55, 99, 100, 68, 85, 78]

Echa un vistazo a la función a continuación. Devuelve una lista que contiene diez números.

def diez_numeros():
   numeros = []
   for i in range(1, 11):
       numeros.append(i)
   return numeros
 
print(diez_numeros())
#resultado: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Aquí hay otro ejemplo. Esta vez pasamos varios argumentos cuando llamamos a la función.

def millas_corridas(semana_1, semana_2, semana_3, semana_4):
   return [semana_1, semana_2, semana_3, semana_4]
 
millaje_mensual = millas_corridas(25, 30, 28, 40)
print(millaje_mensual)
#resultado: [25, 30, 28, 40]

Es fácil confundir tuplas y listas. Después de todo, ambos son contenedores que almacenan objetos. Sin embargo, recuerda estas diferencias clave:

  • Las tuplas no pueden cambiar.
  • Las listas pueden cambiar.

Diccionario

Un diccionario contiene pares clave-valor envueltos entre llaves {}. Cada “clave” tiene un “valor relacionado.”

Considera el diccionario de empleados a continuación. Cada nombre de empleado es una “clave” y su posición es el “valor.”

empleados = {
   "jack": "ingeniero",
   "mary": "gerente",
   "henry": "escritor",
}

Así es como escribiría una función que devuelve un diccionario con un par de valores clave.

def ciudad_pais(ciudad, pais):
   ubicacion = {}
   ubicacion[ciudad] = pais
   return ubicacion
 
ubicacion_favorita = ciudad_pais("Boston", "Estados Unidos")
print(ubicacion_favorita)
#resultado: {'Boston': 'Estados Unidos'}

En el ejemplo anterior, "Boston" es la clave y "Estados unidos" es el valor.

Hemos cubierto mucho terreno. El punto clave es este: puedes devolver múltiples valores desde una función de Python, y hay varias formas de hacerlo.

Escribo sobre las habilidades de programación que necesitas desarrollar y los conceptos que necesitas aprender, y las mejores maneras de aprenderlos en amymhaddad.com.

Traducido del artículo de Amy Haddad - Python Return Multiple Values - How to Return a Tuple, List, or Dictionary