Adloun

informatique (tronc commun des prépas scientifiques) · Chapitre 2 · Exercice de TD

Inverser un annuaire

Recherche séquentielle et dictionnaires · niveau 2

Énoncé

À partir d'un dictionnaire annuaire associant des noms à des numéros de téléphone (distincts), écrire une fonction inverse(annuaire) renvoyant le dictionnaire associant chaque numéro à son nom. Adapter ensuite le code sous la forme inverse_multi(annuaire) pour gérer le cas où plusieurs personnes peuvent partager le même numéro (le dictionnaire associera alors le numéro à la liste des noms).

Corrigé

def inverse(annuaire: dict) -> dict:
    qui = {}
    for nom in annuaire:
        qui[annuaire[nom]] = nom
    return qui

def inverse_multi(annuaire: dict) -> dict:
    qui = {}
    for nom in annuaire:
        num = annuaire[nom]
        if num not in qui:
            qui[num] = []
        qui[num].append(nom)
    return qui

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre