From e5b6fe55c7becb7547532e322379d239fab513d1 Mon Sep 17 00:00:00 2001 From: "Jean-Loup Beaussart (jamesmagnus)" Date: Sun, 8 Feb 2015 20:35:45 +0100 Subject: [PATCH] Construction du dictionnaire MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit J'ai réussi à construire ce fichu dictionnaire, c'était tout con en fait. --- S2/TP2/tp2.py | 51 ++++++++++++++++++++++++++++++++------------------- 1 file changed, 32 insertions(+), 19 deletions(-) diff --git a/S2/TP2/tp2.py b/S2/TP2/tp2.py index d67f21a..59ad60a 100644 --- a/S2/TP2/tp2.py +++ b/S2/TP2/tp2.py @@ -1,6 +1,6 @@ -# PREUD'HOMME Geoffrey +# PREUD'HOMME Geoffrey # BEAUSSART Jean-loup -# Donné le 27/01/201question(5) +# Donné le 27/01/2015 # TP2 Anagrammes - Dictionnaires @@ -51,7 +51,7 @@ question(2) # TODO Reformuler print( - 'La méthode `split` appliquée à une chaîne de caractères renvoie une liste de châines de caractères correspondant à la chaîne de caractère originale découpée aux endroits où se trouvent la chaîne de caractère passée en paramètre (ou si absente, la chaîne de caractère contenant le caractère espacement seul), exemptée de cette dernière.') + 'La méthode `split` appliquée à une chaîne de caractères renvoie une liste de chaînes de caractères correspondant à la chaîne de caractère originale découpée aux endroits où se trouvent la chaîne de caractère passée en paramètre (ou si absente, la chaîne de caractères contenant le caractère espacement seul), exemptée de cette dernière.') question(3) @@ -65,7 +65,7 @@ question(3) ##'la m\xc3\xa9thode split est parfois bien utile' print( - 'De par cet exemple, on remarque que s reste la même chaîne de caractère, `split` ne modifie donc pas la chaîne de caractère à laquelle elle s\'applique (ce qui est logique vu le caractère non-mutable des chaînes de caractère') + 'De par cet exemple, on remarque que s reste la même chaîne de caractère, `split` ne modifie donc pas la chaîne de caractères à laquelle elle s\'applique (ce qui est logique vu le caractère non-mutable des chaînes de caractères') section('Méthode join') @@ -123,7 +123,7 @@ question(3) # '!' print( - 'De par cet exemple, on remarque que chaine reste la même chaîne de caractère, `join` ne modifie donc pas la chaîne de caractère à laquelle elle s\'applique (ce qui est logique vu le caractère non-mutable des chaînes de caractère') + 'De par cet exemple, on remarque que chaine reste la même chaîne de caractères, `join` ne modifie donc pas la chaîne de caractères à laquelle elle s\'applique (ce qui est logique vu le caractère non-mutable des chaînes de caractères') question(4) @@ -263,8 +263,7 @@ section('Casse et accentuation') question(1) -EQUIV_NON_ACCENTUE = {'é': 'e', 'è': 'e', 'à': 'a', 'ç': 'c', 'ï': - 'i', 'î': 'i', 'ô': 'o', 'ë': 'e', 'ê': 'e', 'â': 'a', 'û': 'u'} +EQUIV_NON_ACCENTUE = {'é': 'e', 'è': 'e', 'à ': 'a', 'ç': 'c', 'î':'i', 'ï': 'i', 'ô': 'o', 'ê': 'e', 'ë': 'e', 'â': 'a', 'û': 'u'} question(2) @@ -332,7 +331,7 @@ else: print('Il n \' y a pas de doublons') -section('Anagrammes d’un mot : première méthode') +section('Anagrammes d\'un mot : première méthode') question(1) @@ -358,7 +357,7 @@ print('Les anagrammes de Orange sont:', anagrammes('Orange')) print('Les anagrammes de Calbuth sont:', anagrammes('Calbuth')) -section('Anagrammes d’un mot : seconde méthode') +section('Anagrammes d\'un mot : seconde méthode') question(1) @@ -376,19 +375,21 @@ def cle(mot): assert(type(mot) == str) - cpy = sort(bas_casse_sans_accent(mot)) + cpy = bas_casse_sans_accent(mot) - return cpy + return sort(cpy) question(3) ANAGRAMMES = dict() -l=list() for i in LEXIQUE: k = cle(i) - + if not k in ANAGRAMMES: + ANAGRAMMES[k]=[i] + else: + ANAGRAMMES[k]= ANAGRAMMES[k] + [i] print(len(ANAGRAMMES)) @@ -419,12 +420,24 @@ section('Comparaison des deux méthodes') question(1) -for i in range(30): - print(len(anagrammes(i))) +import time + +debut = time.time() for i in range(30): - print(len(anagrammes2(i))) - + anagrammes(LEXIQUE[i]) + +temps1 = time.time() - debut + +debut = time.time() + +for i in range(30): + anagrammes2(LEXIQUE[i]) + +temps2 = time.time() - debut + +print('La première méthode à mis %s secondes, et la deuxième %s secondes' %(temps1,temps2)) + partie('Phrases d\'anagrammes') # Geoffrey @@ -432,7 +445,7 @@ question(1) def arbre_vers_liste(arbre): - # [[1, [3, [4]]], [2, [3, [4]]]] ⇒ [[1, 3], [1, 4], [2, 3], [2, 4]] + # [[1, [3, [4]]], [2, [3, [4]]]] ⇒‡’ [[1, 3], [1, 4], [2, 3], [2, 4]] print(arbre) possibilites = [] # for i in arbre: @@ -453,7 +466,7 @@ def annagrammes_arbre(liste): return anagrammesPremier def developpement(mots): - # [[1, 2], [3, 4]] ⇒ [[1, 3], [1, 4], [2, 3], [2, 4]] + # [[1, 2], [3, 4]] ⇒‡’ [[1, 3], [1, 4], [2, 3], [2, 4]] # TODO Docstring for annagrammes in mots: for annagramme in annagrammes: