1. Sèries TV (3 punts)

Ens situem en el context de les valoracions d’un conjunt d’experts sobre unes quantes sèries TV d’enguany. Cada expert emet una valoració per a cada sèrie entre 0 i 5 estrelles. Els experts no emeten les valoracions tots al mateix temps sinó que ho fan al llarg d’un període de temps i s’han d’anar incorporant a mesura que es van rebent per tal de disposar en tot moment de la valoració mitjana de cada sèrie, fins a arribar a incorporar-les totes i tenir una valoració final amb la mitjana de cada sèrie.

Per una banda, les valoracions processades fins al moment es guarden a una llista de llistes on cada subllista es compon de dos nombres: un int que indica el nombre de valoracions processades i un float amb la seva mitjana (arrodonida a dos decimals).

Per altra banda, la valoració d’un expert es recull a una llista de int on el i-èssim valor correspon a la valoració de la i-èssima sèrie. Per exemple,

>>> sl = [[9, 2.5], [9, 3.8], [9, 0.0], [9, 5.0]]
>>> vl = [3, 0, 5, 2]

on sl conté una llista amb valoracions de 4 sèries que resumeix 9 valoracions on la primera té de mitjana 2.5, la 2a 3.8, la 3a 0.0 i la 4a 5.0, i vl és la valoració d’un expert que atorga 3 estrelles a la 1a, 0 a la 2a, 5 a la 3a i 2 a la 4a.

Es demana que al fitxer seriestv.py facis la funció anomenada

seriestv.actualitza_vals(sumL, valL)

tal que

donades dues llistes d’igual allargada, sumL amb el sumari de valoracions incorporades fins al moment actual, i valL amb la valoració d’un expert (tal com es descriu més amunt)

modifica la llista sumL incorporant la valoració de valL (aquí tens informació sobre com actualitzar una mitjana )

Els següents tests mostren exemples del que ha de fer la funció:


>>> sl = [[9, 2.5], [9, 3.8], [9, 0.0], [9, 5.0]]
>>> vl = [3, 0, 5, 2]
>>> actualitza_vals(sl, vl)
>>> sl
[[10, 2.55], [10, 3.42], [10, 0.5], [10, 4.7]]

>>> vl = [0, 0, 0, 0]
>>> actualitza_vals(sl, vl)
>>> sl
[[11, 2.32], [11, 3.11], [11, 0.45], [11, 4.27]]

>>> sl = [[0, 0.0], [0, 0.0], [0, 0.0], [0, 0.0]]
>>> vl = [3, 0, 5, 2]
>>> actualitza_vals(sl, vl)
>>> sl
[[1, 3.0], [1, 0.0], [1, 5.0], [1, 2.0]]


>>> vl = [2, 5, 4, 2]
>>> actualitza_vals(sl, vl)
>>> sl
[[2, 2.5], [2, 2.5], [2, 4.5], [2, 2.0]]


Disposes dels jocs de proves al fitxer test-actualitza_vals.txt