1
resposta

Resoluções exercícios

#1. Crie um código para imprimir a soma dos elementos de cada uma das listas contidas na seguinte lista:
lista_de_listas = [[4, 6, 5, 9], [1, 0, 7, 2], [3, 4, 1, 8]]
soma = sum(sum(sublista) for sublista in lista_de_listas)
#soma
#2. Crie um código para gerar uma lista que armazena o terceiro elemento de cada tupla contida na seguinte lista de tuplas:
lista_de_tuplas = [('Pedro', 1.74, 81), ('Júlia', 1.65, 67), ('Otávio', 1.81, 83)]
df = [lista_de_tuplas[i][2] for i in range(len(lista_de_tuplas))]
df
#3. A partir da lista: lista = ['Pedro', 'Júlia', 'Otávio', 'Eduardo'], crie um código para gerar uma lista de tuplas em que cada 
# tupla tenha o primeiro elemento como a posição do nome na lista original e o segundo elemento sendo o próprio nome.
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)
#4. Crie uma lista usando o list comprehension que armazena somente o valor numérico de cada tupla caso o primeiro elemento seja 
# 'Apartamento', a partir da seguinte lista de tuplas:
aluguel = [('Apartamento', 1700), ('Apartamento', 1400), ('Casa', 2150), ('Apartamento', 1900), ('Casa', 1100)]

resultado = [aluguels[1] for aluguels in aluguel if aluguels[0] == 'Apartamento']
resultado
#5. Crie um dicionário usando o dict comprehension em que as chaves estão na lista meses = ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'] e os valores estão em despesa = [860, 490, 1010, 780, 900, 630, 590, 770, 620, 560, 840, 360].
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_dict = list(zip(meses, despesa))
resultado_dict
#6. Uma loja possui um banco de dados com a informação de venda de cada representante e de cada ano e precisa filtrar somente os dados 
# do ano 2022 com venda maior do que 6000. A loja forneceu uma amostra contendo apenas as colunas com os anos e os valores de venda para que você ajude a realizar a filtragem dos dados a partir de um código:
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)]

resultado = [venda[1] for venda in vendas if venda[0] == '2022' and venda[1] > 6000]
resultado
#7
rotulo = [
    ("Glicose igual ou inferior a 70", 'Hipoglicemia'),
    ("Glicose entre 70 a 99", 'Normal'),
    ("Glicose entre 100 e 125", 'Alterada'),
    ("Glicose superior a 125", 'Diabetes')
]

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]

resultado = [
    ('Hipoglicemia', glicose) if glicose <= 70 
    else ('Normal', glicose) if glicose < 100 
    else ('Alterada', glicose) if glicose < 125 
    else ('Diabetes', glicose) 
    for glicose in glicemia
]
#resultado
#8
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))]
tabela
#9
estados = ['SP', 'ES', 'MG', 'MG', 'SP', 'MG', 'ES', 'ES', 'ES', 'SP', 'SP', 'MG', 'ES', 'SP', 'RJ', 'MG', 'RJ', 'SP', 'MG', 'SP', 'ES', 'SP', 'MG']
# Armazenando os estados sem repetição de valor
estados_unicos = list(set(estados))

# Criando uma lista de listas com valores repetidos de cada estado
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)

# Criando um dicionário em que a chave é o nome de cada estado único e o valor é a contagem de elementos
contagem_valores = {estados_unicos[i]: len(lista_de_listas[i]) for i in range(len(estados_unicos))}
print(contagem_valores)
1 resposta

Bom dia Igor, tudo bem com você?

Obrigado por compartilhar seu código com a comunidade Alura.

Seu código está claro e organizado, realizando muito bem a extração dos elementos das tuplas e na criação do dicionário.

Gostaria de aproveitar a oportunidade e deixar uma dica, ao trabalhar com comprehensions, você pode usar a função enumerate() para gerar índices automaticamente ao invés de usar range(len(lista)). Veja como isso pode simplificar o seu código no exercício 3:

lista = ['Pedro', 'Júlia', 'Otávio', 'Eduardo']
lista_de_tuplas = [(i, nome) for i, nome in enumerate(lista)] 
print(lista_de_tuplas)

Isso faz o mesmo que o código original, mas de forma mais concisa e legível.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Abraços e bons estudos!