Dans un forum des utilisateurs peuvent poser des questions et d’autres y répondre.
Lorsqu’une réponse à notre question est proposée, on peut cliquer sur ❤ pour dire que la réponse nous plait.
Dans tous les cas, proposer une réponse (même mauvaise) rapporte 1 point et une réponse appréciée
rapporte 10 points supplémentaires.
Par exemple dans la liste ci-dessous :
forum=[["Amaury",8,1],["Amelie",28,17],["Anne",35,17],["Anthonin",31,7],["Camille",5,3],["Carole",14,2]]
Amaury a posté 8 réponses et 1 a été validée en ❤, elle a donc accumulé 8×1+1×10=18 pts
On vous demande d’écrire une fonction best3 qui admet en paramètre les données du forum et donne en sortie les noms des 3 internautes qui ont les meilleurs scores (par ordre décroissant).
>> best3(forum)
Anne (205), Amelie (198), Anthonin (101)
forum=[["Amaury",8,1],["Amelie",28,17],["Anne",35,17],["Anthonin",31,7],["Camille",5,3],["Carole",14,2]] def best3(f): scores = map(lambda p:[p[0], p[1]+10*p[2]],f) classer = sorted(list(scores),key=lambda p:p[1],reverse=True) trois = map(lambda p: p[0]+" ("+str(p[1])+")",classer[:3]) return ", ".join(list(trois))