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,
sumLamb el sumari de valoracions incorporades fins al moment actual, ivalLamb la valoració d’un expert (tal com es descriu més amunt)modifica la llista
sumLincorporant la valoració devalL(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