Olá, Felisberto. Como vai?
Sua reflexão é excelente e toca em um ponto fundamental da programação em Python: a escrita de código "pythônico", que preza pela simplicidade e legibilidade.
Você está corretíssimo. Para calcular a média de valores em um dicionário, a abordagem utilizando as built-in functions sum() e len() é considerada a melhor prática na maioria dos cenários do dia a dia. Ela é eficiente e permite que qualquer outra pessoa que leia seu código entenda a intenção imediatamente.
Abordagem com Built-in Functions
Se tivermos um dicionário de notas, a implementação ficaria assim:
notas = {'Matemática': 8.5, 'Português': 7.0, 'História': 9.0}
# Extraindo apenas os valores do dicionário
valores = notas.values()
# Calculando a média de forma direta
media = sum(valores) / len(valores)
print(f'A média arredondada é: {round(media, 2)}')
Outras Abordagens para Discussão
Embora o uso de funções nativas seja o ideal para scripts simples, em Data Science existem outras abordagens que valem a pena mencionar:
- Biblioteca Statistics: O Python possui um módulo nativo chamado
statistics. Ele oferece a função mean(), que deixa o código ainda mais semântico.
import statistics
media = statistics.mean(notas.values())
- NumPy: Se você estiver lidando com volumes massivos de dados, a biblioteca NumPy é a escolha profissional. Ela é otimizada para cálculos matemáticos e processa grandes listas de números muito mais rápido que as funções nativas.
import numpy as np
media = np.mean(list(notas.values()))
Boas Práticas e Type Hints
Como você mencionou os type hints e docstrings, uma forma elegante de empacotar essa lógica seria criando uma função documentada:
def calcular_media(notas: dict) -> float:
"""
Calcula a média aritmética dos valores de um dicionário.
:param notas: Dicionário contendo nomes de disciplinas e notas.
:return: Valor da média calculada.
"""
if not notas:
return 0.0
return sum(notas.values()) / len(notas.values())
Conclusão: Para a maioria dos casos em Python puro, sua sugestão de usar sum() e len() é a mais adequada por ser performática e evitar a importação de bibliotecas desnecessárias. A escolha por outras ferramentas (como NumPy) deve acontecer quando a complexidade ou o volume dos dados exigir maior poder de processamento.
Espero que possa ter lhe ajudado!