## 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]]
## 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)]
# Extrair, armazenar e imprimir a posição 1 do tupla
for tupla in lista_de_tuplas:
terceiro_elemento = tupla[1]
print(terceiro_elemento)
## 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']
# Extrair primeira letra do nome
primeira_letra = list(map(lambda x: x[0], lista))
# Unificar letra inicial e nomes na tupla e imprimir
print(list(zip(primeira_letra, lista)))
## 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)]
# Lista com a posição 1 das tuplas Apartamento
apartamento = [i[1] for i in aluguel if i[0] == 'Apartamento']
print(apartamento)
## 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]
# dict comprehension
meses_despesas = {mes: despesa[i] for i, mes in enumerate(meses)}
print(meses_despesas)
## 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)]
representantes = {}
vendas_2022 = []
ref = 6000
# Adiciona vendas de 2022 maiores que o valor de referência (list comprehension)
vendas_2022 = [venda for ano, venda in vendas if ano == '2022' and venda > ref]
# Gera nomes de representantes com letras (A, B, C, D, ...)
from string import ascii_uppercase
for i, venda in enumerate(vendas_2022):
representante = ascii_uppercase[i] # Gera A, B, C, ...
representantes[representante] = venda
# Ordena os representantes por suas vendas em ordem decrescente
representantes = dict(sorted(representantes.items(), key=lambda item: item[1], reverse=True))
# Exibe os representantes e suas vendas
for representante, venda in representantes.items():
print(f'Representante {representante}: {venda}')
## 7. Uma clínica analisa dados de pacientes e armazena o valor numérico da glicose em um banco de dados e gostaria de rotular os dados da seguinte maneira: Glicose igual ou inferior a 70:
classificacao = ('Hipoglicemia', 'Normal', 'Alterada', 'Diabetes')
indices = [(0, 69), (70, 99), (100, 125), (126, float('inf'))]
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]
# Converte em tupla a glicemia
glicemia = tuple(glicemia)
# Unifica a classificação e os índices
classificacao_indices = list(zip(classificacao, indices))
# Classifica os valores de glicemia e converte o resultado em tupla
glicemia_classificada = tuple(
(classificacao[i], valor) for valor in glicemia for i, (classe, (minimo, maximo)) in enumerate(classificacao_indices) if minimo <= valor <= maximo
)
# Imprime os resultados
for classe, valor in glicemia_classificada:
print(f'{valor} - {classe}')
# Imprime as estatísticas
print(f'\nEstatísticas:\n{"-" * 20}')
for classe, (minimo, maximo) in classificacao_indices:
total = sum(1 for valor in glicemia if minimo <= valor <= maximo)
porcentagem = (total / len(glicemia)) * 100
print(f'{classe}: {total} ({porcentagem:.2f}%)')
print(f'\n{"-" * 20}')