Original article: Python Return Multiple Values – How to Return a Tuple, List, or Dictionary

Puedes devolver múltiples valores de una función en Python.

Para hacerlo, devuelves una estructura de datos que contenga varios valores, como una lista con la cantidad de millas para correr cada semana.

def total_millas(minimo_millas):
    semana_1=minimo_millas+2
    semana_2=minimo_millas+4
    semana_3=minimo_millas+6
    return [semana_1,semana_2,semana_3]
print(total_millas(2))
#resultado: [4,6,8]

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

Tuplas

Una tupla es una secuencia ordenada e inmutable. Eso significa que una tupla no puede cambiar.
Utilizamos una tupla, por ejemplo, para almacenar información sobre una persona: su nombre, edad y ubicación.

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

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

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

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

“En realidad, es la coma la que forma una tupla, no los paréntesis”. Tal y como indica la documentación. Sin embargo, los paréntesis son requeridos con tuplas vacías o para evitar confusiones.

Aquí hay un ejemplo que emplea el paréntesis () para retornar una tupla.

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

Listas

Una lista es una secuencia ordenada y mutable. Eso significa que una lista puede cambiar.
Puede utilizar una lista para almacenar ciudades:

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

O resultados de exámenes:

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

Observa la función de abajo. Simplemente, nos regresa una línea que contiene 10 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_recorridas(semana_1, semana_2, semana_3, semana_4):
   return [semana_1, semana_2, semana_3, semana_4]
 
recorrido_mensual = millas_recorridas(25, 30, 28, 40)
print(recorrido_mensual)
#resultado: [25, 30, 28, 40]

Es fácil confundir tuplas y listas. Al fin y al cabo, ambos son contenedores que almacenan objetos. No obstante, recuerda estas diferencias clave:
1.Las tuplas no pueden cambiar.
2.Las listas pueden cambiar.

Diccionarios

Un diccionario contiene pares clave-valor entre corchetes {}. Cada "clave" tiene un "valor" relacionado.
Consideremos el diccionario de empleados a continuación. Cada nombre de empleado es una "clave" y su posición es el "valor".

empleados = {
   "Muan": "ingeniero",
   "Maria": "gerente",
   "Henry": "escritor",
}

Así es como escribiríamos una función que devuelve un diccionario con un par clave-valor.

def ciudad_pais(ciudad,pais):
    lugar= {}
    lugar[ciudad]= pais
    return lugar
lugar_favorito= ciudad_pais("Santiago","Chile")
print(lugar_favorito)
#resultado: {"Santiago":"Chile"}

En el ejemplo anterior, "Santiago" es la clave y "Chile" es el valor.
Hemos cubierto mucho terreno. El punto clave es este: puede devolver múltiples valores desde una función de Python, y hay varias formas de hacerlo.

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