1
resposta

Desafio: hora da prática

1

lista_de_listas = [[4,6,5,9], [1,0,7,2], [3,4,1,8]]

soma = [sum(lista_de_listas[i]) for i in range(len(lista_de_listas))]
soma

2

lista_de_tuplas = [('Pedro', 1.74, 81), ('Júlia', 1.65, 67), ('Otávio', 1.81, 83)]
idade = [idade[2] for idade in lista_de_tuplas]
idade

3

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

4

aluguel = [('Apartamento', 1700), ('Apartamento', 1400), ('Casa', 2150), ('Apartamento', 1900), ('Casa', 1100)]

apartamento = [locação[1] for locação in aluguel if locação[0] == 'Apartamento']
apartamento

5

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]

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

6

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)]

venda_2002 = [venda[1] for venda in vendas  if venda [0] == '2022']
venda_2002

7

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]

hipoglicemia = [glicemia[i] for i in range(len(glicemia)) if glicemia[i] <= 70]
normal = [glicemia[i] for i in range(len(glicemia)) if  70 < glicemia[i]  <= 99]
alterada = [glicemia[i] for i in range(len(glicemia)) if 100 < glicemia[i] <= 125 ]
diabetes = [glicemia[i] for i in range(len(glicemia)) if glicemia[i] > 125]


resultado = [('Hipoclicemia', hipoglicemia), ('Normal', normal), ('Alterada', alterada), ('Diabetes', diabetes)]
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]

cabeçalho = ('Id', 'Quantidade', 'Preço', 'Total')
preco_total = [preco[i]*quantidade[i] for i in range(len(quantidade))]

tabela = [(id[i], quantidade[i], preco[i], preco_total[i]) for i in range(len(id)) ]
tabela = cabeçalho , tabela
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']

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

10

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)]

estado, quantidade = zip(*funcionarios)

estado = list(estado)
quantidade = list(quantidade)
func_por_estado = { est: sum([quantidade[i] for i in range(len(estado)) if estado[i] == est]) for est in set(estado)}
func_por_estado
1 resposta

Muito bons os seus códigos, bem concisos, principalmente no último exercício. Eu consegui chegar no resultado, mas ficou bem mais "poluído":

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)]
uf, qtd = zip(*funcionarios)
print(f'uf = {uf}')
print(f'\nqtd = {qtd}')

uf_sem_repeticao = list(set(uf))
print(f'\nuf_sem_repeticao = {uf_sem_repeticao}')

dict1 = {uf_sem_repeticao[x]:[qtd[i] for i in range(len(qtd)) if uf[i] == uf_sem_repeticao[x]] for x in range(len(uf_sem_repeticao))}
print(f'\ndict_1 = {dict1}')

dict2 = {x:sum(y) for x, y in dict1.items()}
print(f'\ndict_2 = {dict2}')

Vendo os seus códigos aprendi vários detalhes em que eu posso melhorar. Obrigado por compartilhar.