forum.py

Created by schraf

Created on September 15, 2018

337 Bytes

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).

Explications en vidéo

>> 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))