Solução:
A solução abaixo usa o setdefault para actualizar o dicionário das classificações. Deste modo fica resolvida a questão de incluir uma primeira classificação ou simplesmente actualizar. Actualizado o dicionário, ele é percorrido, item a item, para determinar o melhor, prevendo o caso de não ter as 3 classificações.
def melhor_filme(filmes, classific):
# actualiza
nome = classific[0]
valores = classific[1:]
filmes[nome] = filmes.setdefault(nome,[]) + valores
# calcula melhor
m_filme = ''
m_pont = 0
for nome,pontos in filmes.items():
comp = len(pontos)
if comp < 3:
continue
media = (sum(pontos)/comp)
if media > m_pont:
m_filme = nome
m_pont = media
return (m_filme, m_pont)

Sem comentários:
Enviar um comentário