Les despeses d’un conjunt de pensionistes s’emmagatzemen en una llista no buida de llistes on cada subllista representa la informació d’un pensionista i està formada per l’identificador del pensionista (str), un enter que indica l’edat i una sèrie no buida de despeses mensuals enregistrades (int). En el següent exemple, la persona amb identificador ’1111A’ es diu ’Joan’ té 68 anys i tres despeses mensuals de 640, 589 i 573.
l = [['1111A','Joan',68,640,589,573],\
['2222D','Pepa',69,710,550,570,698,645,512],\
['3333J','Anna',72,530,534],\
['4444N','Pep',75,770,645,630,650,590,481,602]]
Es demanen els codis de diverses funcions. Seguiu el format dels exemples que es mostren a sota. En tots els enunciats podeu suposar que sempre hi ha dades.
Feu una funció @promigDespeses(p)@ en que, donada una llista que codifica les dades d’un pensionista , retorni el promig de les despeses amb dues xifres decimals.
Feu una funció @promigEdats(lp)@ en que, donada una llista com la mostrada en l’exemple, retorni el promig de les edats amb dues xifres decimals dels pensionistes.
Feu una funció @edatsExtremes(lp)@ en que, donada una llista com la mostrada en l’exemple, retorni l’edat màxima i la mínima dels pensionistes.
Feu una funció @sumaPromig(lp)@ en que, donada una llista com la mostrada en l’exemple, retorni la suma del promig de les despeses de tots els pensionistes de la llista amb dues xifres decimals.
Feu una funció @maximPromig(lp)@ en que, donada una llista com la mostrada en l’exemple, retorni del promig de les despeses més gran de tots els pensionistes de la llista.
Feu una funció @despesaPromig(lp)@ en que, donada una llista com la mostrada en l’exemple, retorni una altra llista amb la despesa mitjana mensual de cada persona. La llista resultant ha d’estar ordenada de forma ascendent.
Feu una funció @despesaPromigSuperior(lp, d)@ en que, donada una llista com la mostrada en l’exemple i una despesa , retorni una altra llista amb l’identificador i l’edat de la primera persona que tingui una mitjana de despesa superior a . En cas de que no n’hi hagi cap, la funció retornarà la llista buida.
Les tres primeres funcions valen 10 punts, les dues següents 15 y les dues últimes 20.
Aquest problema està basat en el problema "Pensions" creat per professors del departament de Ciències de la Computació amb docència a l’ETSEIB. Podeu consultar l’original a: http://gie.cs.upc.edu/fi/temes/llistes/Pensions.html
>>> l = [['1111A','Joan',68,640,589,573],\ ... ['2222D','Pepa',69,710,550,570,698,645,512],\ ... ['3333J','Anna',72,530,534],\ ... ['4444N','Pep',75,770,645,630,650,590,481,602]] >>> promigDespeses(l[0]) 600.67 >>> promigEdats(l) 71.0 >>> edatsExtremes(l) (68, 75) >>> sumaPromig(l) 2370.84 >>> maximPromig(l) 624.0 >>> despesaPromig(l) [532.0, 600.67, 614.17, 624.0] >>> despesaPromigSuperior(l, 600) ['1111A', 68]