Informatique

Question

Nsi : dictionnaire des antécédents

Un dictionnaire associe des valeurs à des clés, comme par exemple {"Paris": "P", "Lyon": "L", "Nantes": "N", "Lille": "L"} qui associe "p" à la clé "Paris". Suivant les cas, une même valeur peut être associée à une ou plusieurs clés. Dans l'exemple précédent, la valeur "L" est associée aux clés "Lyon" et "Lille". on les appelle les antécédents de "L", tandis que "p" a la clé "Paris" pour seul et unique antécédent. On peut ainsi construire le dictionnaire des antécédents {"P": ["Paris"], "L": ["Lyon", "Lille"], "N": ["Nantes"]}. Vous devez écrire une fonction antecedents de paramètre dico qui renvoie le dictionnaire associant les valeurs de dico à la liste de leurs antécédents dans dico.

Note: Puisqu'aucun ordre ne vous est imposé dans la construction des listes, une étape supplémentaire de tri est réalisée lors des tests de validation.

Créer la fonction :

def antecedents(dico) :​

2 Réponse

  • Réponse :

    Bonjour,

    Explications :

    Avec un bonus de lecture de cvs

    Image en pièce jointe de la réponse caylus
    Image en pièce jointe de la réponse caylus
  • Bonjour, j'espère avoir été clair dans mes explications. Tu peux toujours poser des questions en commentaire, j'y répondrai. Passe une bonne journée.

    Explications :

    Avant de coder, on va expliquer comment on va faire (on fait l'algorithme) :

    1. On doit donc commencer par créer une variable qui va contenir notre dictionnaire final (appelons la result).

    2. Ensuite on parcours un par un les éléments de dico à l'aide d'une boucle for. On regarde si la valeur de la clé de x-ième élément de dico est déjà présente dans result (exemple : on regarde si "P" est déjà présent dans result).

    3. Si elle ne l'est pas alors on crée un nouvel élément dans result. Sa clé sera la valeur du x-ième élément de dico (dans l'exemple c'est "P"). Sa valeur sera une liste (entre crochets) contenant la clé de l'élément de dico (ici c'est "Paris", on aura donc dans result : "P" : ["Paris"] ).

    4. Si elle l'est alors on ajoute la clé du x-ième élément de dico à la liste déjà créée (exemple : lorsque la boucle sera sur le dernier élément "Lille : "L" on ajoute "Lille" à l'élément "L" : ["Lyon"] déjà présent dans result, on aura donc finalement : "L" : ["Lyon", "Lille"]).

    Voici donc le code final, on obtient bien le résultat attendu :

    Image en pièce jointe de la réponse KataKatis
    Image en pièce jointe de la réponse KataKatis

Autres questions