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!

1
resposta

Desafio

lista_de_listas = [[4,6,5,9], [1,0,7,2], [3,4,1,8]]
for lista in lista_de_listas:
print(sum(lista))

lista_de_tuplas = [('Pedro', 1.74, 81), ('Júlia', 1.65, 67), ('Otávio', 1.81, 83)]
lista = []
for tupla in lista_de_tuplas:
lista.append(tupla[2])
print(lista)

lista = ['Pedro', 'Júlia', 'Otávio', 'Eduardo']
lista_de_tuplas = []
for i in range(len(lista)):
lista_de_tuplas.append((i, lista[i]))
print(lista_de_tuplas)

aluguel = [('Apartamento', 1700), ('Apartamento', 1400), ('Casa', 2150), ('Apartamento', 1900), ('Casa', 1100)]
lista = [tupla[1] for tupla in aluguel if tupla[0]== 'Apartamento']
print(lista)

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]
dicionario = {meses[i]: despesa[i] for i in range(len(meses))}
print(dicionario)

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 = [tupla[1] for tupla in vendas if tupla[0] == '2022' and tupla[1] > 6000]
print(filtro)

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', glicose) if glicose <= 70 else ('Normal', glicose) if glicose < 100 else ('Alterada', glicose) if glicose < 125 else ('Diabetes', glicose) for glicose in glicemia]
print(rotulos)

estados = ['SP', 'ES', 'MG', 'MG', 'SP', 'MG', 'ES', 'ES', 'ES', 'SP', 'SP', 'MG', 'ES', 'SP', 'RJ', 'MG', 'RJ', 'SP', 'MG', 'SP', 'ES', 'SP', 'MG']
id = [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[i], quantidade[i], preco[i], quantidade[i]*preco[i]) for i in range(len(id))]
estados_unicos = list(set(estados))
lista_de_listas = []
for estado in estados_unicos:
lista = [uf for uf in estados if uf == estado]
lista_de_listas.append(lista)
print(lista_de_listas)
contagem_valores = {estados_unicos[i]: len(lista_de_listas[i]) for i in range(len(estados_unicos))}
print(contagem_valores)

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([tupla[0] for tupla in funcionarios]))
lista_de_listas = []
for estado in estados_unicos:
lista = [tupla[1] for tupla in funcionarios if tupla[0] == estado]
lista_de_listas.append(lista)
print(lista_de_listas)
agrupamento_por_estado = {estados_unicos[i]: lista_de_listas[i] for i in range(len(estados_unicos))}
print(agrupamento_por_estado)
soma_por_estado = {estados_unicos[i]: sum(lista_de_listas[i]) for i in range(len(estados_unicos))}
print(soma_por_estado)

1 resposta

Oi Vanessa, tudo bem?
Parabéns pela dedicação em resolver todas as atividades do desafio!
Você demonstrou que compreendeu conceitos importantes de listas, tuplas, dicionários, compreensões de listas (list comprehensions) e manipulação de dados.
Analisei suas soluções e, de forma geral, elas estão corretas e atendem ao que foi proposto nos exercícios.
Como sugestão de melhoria, em alguns casos você pode tornar o código mais "pythonico" utilizando funções prontas da linguagem.
Por exemplo, no exercício dos meses e despesas, poderia usar:

dicionario = dict(zip(meses, despesa))

E no exercício de criação das tuplas com índices:

lista_de_tuplas = list(enumerate(lista))

Essas alternativas não tornam sua solução mais correta, mas deixam o código mais conciso e aproveitam recursos nativos do Python.
Outro ponto interessante é que, ao usar:

estados_unicos = list(set(estados))

a ordem dos estados pode variar entre execuções.
Isso não afeta o resultado da contagem, mas é algo importante de conhecer quando trabalhamos com conjuntos (set).
Seu raciocínio está muito bom e demonstra que você já consegue aplicar estruturas de dados em diferentes cenários, o que é fundamental para análise de dados e manipulação de informações em Python.
Continue praticando dessa forma, pois a repetição desses exercícios ajuda bastante a consolidar os conceitos e ganhar fluência na linguagem.
Realmente incrível.
Obrigado por compartilhar.
Bons estudos.