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.