Olá, Matheus! Como vai?
Muito bem! Continue resolvendo os desafios e compartilhando com a comunidade Alura.
Observei que você explorou o uso de funções puras para organizar e separar responsabilidades do código, utilizou muito bem o list comprehension para transformar listas de forma elegante e ainda compreendeu a importância do tipo Dict
com List
para tornar o código mais legível e seguro.
Uma dica interessante para o futuro é usar funções lambda com filter()
para filtrar elementos de uma lista de forma mais funcional. Dessa forma:
from typing import Dict, List
livros = [
{"nome": "1984", "estoque": 5},
{"nome": "Dom Casmurro", "estoque": 0},
{"nome": "O Pequeno Príncipe", "estoque": 3},
{"nome": "O Hobbit", "estoque": 0},
{"nome": "Orgulho e Preconceito", "estoque": 2}
]
def exibir_livros(livro: Dict) -> str:
return f'Livro disponível: {livro["nome"]}. (Estoque disponível: {livro["estoque"]})'
def livros_disponiveis(livros: List[Dict]) -> List[Dict]:
return list(filter(lambda livro: livro["estoque"] > 0, livros))
def exibir_livros_em_estoque(livros: List[Dict]) -> str:
disponiveis = livros_disponiveis(livros)
mensagens = [exibir_livros(livro) for livro in disponiveis]
return "\n".join(mensagens)
if __name__ == "__main__":
resultado = exibir_livros_em_estoque(livros)
print(resultado)
Resultado:
Livro disponível: 1984. (Estoque disponível: 5)
Livro disponível: O Pequeno Príncipe. (Estoque disponível: 3)
Livro disponível: Orgulho e Preconceito. (Estoque disponível: 2)
Isso reduz a quantidade de código imperativo e torna a intenção mais clara em operações de filtragem.
Para saber mais: Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:
Fico à disposição! E se precisar, conte sempre com o apoio do fórum.
Abraço e bons estudos!
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!