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.
01.
def
melhor_filme(filmes, classific):
02.
# actualiza
03.
nome
=
classific[
0
]
04.
valores
=
classific[
1
:]
05.
filmes[nome]
=
filmes.setdefault(nome,[])
+
valores
06.
# calcula melhor
07.
m_filme
=
''
08.
m_pont
=
0
09.
for
nome,pontos
in
filmes.items():
10.
comp
=
len(pontos)
11.
if
comp <
3
:
12.
continue
13.
media
=
(sum(pontos)
/
comp)
14.
if
media > m_pont:
15.
m_filme
=
nome
16.
m_pont
=
media
17.
return
(m_filme, m_pont)
Sem comentários:
Enviar um comentário