Artigo original: https://www.freecodecamp.org/news/python-returns-multiple-values-how-to-return-a-tuple-list-dictionary/

É possível retornar diversos valores a partir de uma função em Python.

Para fazer isso, retorne uma estrutura de dados que contenha diversos valores, como uma lista contendo o número de milhas a percorrer em uma semana correndo.

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

As estruturas de dados em Python são usadas para armazenar coleções de dados, que podem ser retornadas a partir das funções. Neste artigo, exploraremos como retornar diversos valores a partir destas estruturas de dados: tuplas, listas e dicionários.

Tuplas

Uma tupla é uma sequência ordenada e imutável, o que significa que uma tupla não pode ser alterada.

Use uma tupla, por exemplo, para armazenar informações sobre uma pessoa: seu nome, idade e local.

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

Aqui vemos como você escreveria uma função que retorna uma tupla.

def pessoa():
   return "bob", 32, "boston"
 
print(pessoa())
# result: ('bob', 32, 'boston')

Observe que não usamos parênteses na instrução de retorno. Isso ocorre porque você pode retornar uma tupla separando cada item com uma vírgula, conforme vemos no exemplo acima.

"Na verdade, é a vírgula que faz uma tupla, e não os parênteses", afirma a documentação. Porém, os parênteses são necessários com tuplas vazias ou para evitar confusões.

Aqui temos o exemplo de uma função que usa os parênteses () para retornar uma tupla.

def pessoa(nome, idade):
   return (nome, idade)
print(person("henry", 5))
#resultado: ('henry', 5)

Lista

Uma lista é uma sequência ordenada e mutável, ou seja, ela pode mudar.

Podemos usar uma lista para armazenar cidades:

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

Ou resultados de testes:

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

Observe a função abaixo. Ela retorna uma lista que contém dez números.

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

Aqui temos outro exemplo. Desta vez, passamos vários argumentos quando chamamos a função.

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

É fácil confundir tuplas e listas. Afinal, ambos são contêineres que armazenam objetos. No entanto, lembre-se destas diferenças importantes:

  • Tuplas não podem ser alteradas.
  • Listas podem ser alteradas.

Dicionários

Um dicionário contém pares de chave-valor envolvidos por chaves {}. Cada "chave" tem um "valor" relacionado.

Considere o dicionário de funcionários abaixo. Cada nome de funcionário é uma "chave" e sua profissão é o "valor".

funcionarios = {
   "jack": "engenheiro",
   "mary": "gerente",
   "henry": "escritor",
}

Aqui vemos como você escreveria uma função que retorna um dicionário com um par chave-valor.

def cidade_pais(cidade, pais):
   location = {}
   location[cidade] = pais
   return location
 
local_favorito = cidade_pais("Boston", "Estados Unidos")
print(local_favorito)
# resultado: {'Boston': 'Estados Unidos'}

No exemplo acima, "Boston" é a chave e "Estados Unidos" é o valor.

Trabalhamos várias coisas. O ponto importante é: você pode retornar diversos valores a partir de uma função em Python e há diversas maneiras de se fazer isso.

A autora do artigo escreve sobre habilidades em programação que você necessita desenvolver, sobre os conceitos que precisa aprender e sobre as melhores maneiras de aprendê-los em seu blog, amymhaddad.com.