Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

0
respostas

Re. Desafio: Hora da prática (Soluções em Python)

  1. Soma de listas dentro de uma lista
    lista_de_listas = [[4,6,5,9], [1,0,7,2], [3,4,1,8]]

for lista in lista_de_listas:
print(sum(lista))
2. Terceiro elemento das tuplas
lista_de_tuplas = [('Pedro', 1.74, 81), ('Júlia', 1.65, 67), ('Otávio', 1.81, 83)]

terceiros = [tupla[2] for tupla in lista_de_tuplas]

print(terceiros)
3. Posição + nome em tuplas
lista = ['Pedro', 'Júlia', 'Otávio', 'Eduardo']

resultado = [(i, lista[i]) for i in range(len(lista))]

print(resultado)
4. Apartamentos (list comprehension)
aluguel = [('Apartamento', 1700), ('Apartamento', 1400),
('Casa', 2150), ('Apartamento', 1900), ('Casa', 1100)]

resultado = [valor for tipo, valor in aluguel if tipo == 'Apartamento']

print(resultado)
5. Dicionário meses x despesas
meses = ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun',
'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez']

despesa = [860, 490, 1010, 780, 900, 630,
590, 770, 620, 560, 840, 360]

resultado = {meses[i]: despesa[i] for i in range(len(meses))}

print(resultado)
6. Filtro de vendas (2022 > 6000)
vendas = [('2023', 4093), ('2021', 4320), ('2021', 5959), ('2022', 8883),
('2023', 9859), ('2022', 5141), ('2022', 7688), ('2022', 9544),
('2023', 4794), ('2021', 7178), ('2022', 3030), ('2021', 7471),
('2022', 4226), ('2022', 8190), ('2021', 9680), ('2022', 5616)]

filtro = [valor for ano, valor in vendas if ano == '2022' and valor > 6000]

print(filtro)
7. Rotulagem de glicemia
glicemia = [129, 82, 60, 97, 101, 65, 62, 167, 87, 53, 58, 92,
66, 120, 109, 62, 86, 96, 103, 88, 155, 52, 89, 73]

rotulos = [
('Hipoglicemia', g) if g <= 70 else
('Normal', g) if g < 100 else
('Alterada', g) if g <= 125 else
('Diabetes', g)
for g in glicemia
]

print(rotulos)
8. Tabela com total da venda
id_venda = [0,1,2,3,4,5,6,7,8,9]
quantidade = [15,12,1,15,2,11,2,12,2,4]
preco = [93.0,102.0,18.0,41.0,122.0,14.0,71.0,48.0,14.0,144.0]

tabela = [('id','quantidade','preco','total')]

tabela += [
(id_venda[i], quantidade[i], preco[i], quantidade[i]*preco[i])
for i in range(len(id_venda))
]

print(tabela)
9. Contagem de estados
estados = ['SP','ES','MG','MG','SP','MG','ES','ES','ES','SP',
'SP','MG','ES','SP','RJ','MG','RJ','SP','MG','SP',
'ES','SP','MG']

estados_unicos = list(set(estados))

contagem = {
estado: estados.count(estado)
for estado in estados_unicos
}

print(contagem)
10. Agrupamento de funcionários por estado
funcionarios = [('SP', 16), ('ES', 8), ('MG', 9), ('MG', 6),
('SP', 10), ('MG', 4), ('ES',9), ('ES', 7),
('ES', 12), ('SP', 7), ('SP', 11), ('MG',8),
('ES',8), ('SP',9), ('RJ', 13), ('MG', 5),
('RJ', 9), ('SP', 12), ('MG', 10), ('SP', 7),
('ES', 14), ('SP', 10), ('MG', 12)]

estados_unicos = list(set([e for e, _ in funcionarios]))

agrupamento = {
estado: [qtd for e, qtd in funcionarios if e == estado]
for estado in estados_unicos
}

soma_por_estado = {
estado: sum(valores)
for estado, valores in agrupamento.items()
}

print(agrupamento)
print(soma_por_estado)