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