From 338f2f9ea036474f1ab786c3daff4cfc120d26f3 Mon Sep 17 00:00:00 2001 From: Jean-Loup Beaussart Date: Tue, 3 Feb 2015 10:46:00 +0100 Subject: [PATCH] =?UTF-8?q?Section=20Anagrammes=20d'un=20mot:seconde=20m?= =?UTF-8?q?=C3=A9thode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- S2/TP2/tp2.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/S2/TP2/tp2.py b/S2/TP2/tp2.py index c2fd034..860793e 100644 --- a/S2/TP2/tp2.py +++ b/S2/TP2/tp2.py @@ -342,20 +342,57 @@ def anagrammes(mot): question(2) +print('Les anagrammes de Orange sont:', anagrammes('Orange')) +print('Les anagrammes de Calbuth sont:', anagrammes('Calbuth')) + section('Anagrammes d’un mot : seconde méthode') question(1) +#Il se peut que certains mots du lexique soient des anagrammes d'autres mots du lexique, or on se retrouverait alors avec plusieurs fois la même liste d'anagrammes pour des clés différentes. question(2) +def cle(mot): + """ str -> str , renvoie la version triée des lettres de mot, sans accent et en bas de casse. + CU: mot est un str + """ + + assert(type(mot)==str) + + cpy = list(bas_casse_sans_accent(mot)).sort() + + return str(cpy) + + question(3) +ANAGRAMMES = {cle(i):anagrammes(i) for i in LEXIQUE} + +print(len(ANAGRAMMES)) + question(4) +def anagrammes2(mot): + """ str -> list de str, utilise le dictionnaire ANAGRAMMES pour trouver la liste des anagrammes de mot + CU: mot est un str + """ + + k = cle(mot) + + if k in ANAGRAMMES: + return ANAGRAMMES[k] + else: + return [] + + + question(5) +print('Les anagrammes de Orange sont:', anagrammes2('Orange')) +print('Les anagrammes de Calbuth sont:', anagrammes2('Calbuth')) + section('Comparaison des deux méthodes')