1
resposta

Questão 7

Minha resolução do exercício foi diferente da resolução do instrutor, gostaria de validar se também está correta:

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]

situacao = ['Hipoglicemia' if x <=70 else 'Normal' if 70 < x <= 99 else 'Alterada' if 100 < x <= 125 else 'Diabetes' for x in glicemia]

status_glicemico = list(zip(situacao, glicemia))

print(status_glicemico)
1 resposta

Olá, Amanda! Tudo bem?

Sua resolução está correta e é uma excelente demonstração de como utilizar List Comprehension para tornar o código mais conciso.

Embora o instrutor possa ter seguido um caminho mais tradicional (usando laços for e append), a sua abordagem é considerada muito "Pythônica", pois resolve a classificação em uma única linha de forma elegante.

Aqui estão alguns pontos interessantes sobre a sua lógica:

1. List Comprehension com IF/ELSE Aninhado

Você estruturou muito bem a lógica condicional dentro da lista. O Python interpreta essa estrutura como uma cadeia de decisões, o que funciona perfeitamente para categorias exclusivas como os níveis de glicemia.

2. O uso do zip

A função zip é a escolha ideal aqui para unir as duas listas (situacao e glicemia). Ela cria pares ordenados, facilitando a visualização de qual status pertence a qual valor.

Pequenas Observações para Refinamento:

  • Intervalos nos Limites: Note que na sua condição 'Alterada' if 100 < x <= 125, o valor 100 exato não está coberto (já que você usou < e não <=). Na lógica médica comum, o valor 100 já costuma ser considerado o início da faixa alterada. Para garantir que nenhum número "caia no limbo", você poderia ajustar para 100 <= x <= 125.
  • Ordem das Condições: Como você começou verificando se é menor que 70, e depois se está entre 70 e 99, sua lógica fluiu muito bem.

Resumo: Sua solução não só funciona como é mais eficiente em termos de linhas de código! Ela demonstra que você já está confortável com estruturas de dados mais avançadas do Python.

Você sentiu facilidade em ler a lógica do if/else dentro da List Comprehension ou achou que a linha ficou muito longa?