From 92825cfb4d6616a4220ae709fd508eca84a511c2 Mon Sep 17 00:00:00 2001 From: Koffi Gantchou <koffi.gantchou.etu@univ-lille.fr> Date: Sat, 18 Jan 2025 23:44:41 +0100 Subject: [PATCH] =?UTF-8?q?Replace=20tp1.py=20je=20suis=20dans=20la=20dern?= =?UTF-8?q?i=C3=A8re=20partie=20du=20tp=20=20et=20pour=20des=20rasions=20d?= =?UTF-8?q?e=20capacit=C3=A9s=20de=20mon=20pc=20je=20n'arrive=20pas=20a=20?= =?UTF-8?q?avoir=20le=20r=C3=A9sultat=20ex=20compt=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tp1.py | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) diff --git a/tp1.py b/tp1.py index 5a7f536..96798db 100644 --- a/tp1.py +++ b/tp1.py @@ -157,7 +157,114 @@ def sont_anagrammes4(s1:str,s2:str)->bool: return False return True +# il y'a 139719 mots dans ce lexique +# non ce lexique ne contient pas de doublons car len(LEXIQUE)==len(set(LEXIQUE)) + +from lexique import LEXIQUE +def anagrammes(mot: str) -> list[str]: + """ + Renvoie la liste des mots figurant dans le LEXIQUE qui sont des anagrammes de mot. + + Précondition: aucune + + Exemples: + + $$$ anagrammes('orange') + ['onagre', 'orange', 'orangé', 'organe', 'rongea'] + $$$ anagrammes('info') + ['foin'] + $$$ anagrammes('Calbuth') + [] + """ + res=[] + for elt in LEXIQUE: + + if len(mot) == len(elt) and sont_anagrammes4(elt,mot): + res.append(elt) + return res + +#2 liste des anagrammes du mot chien +# ['chien', 'chiné', 'niche', 'niché'] + + +# ANAGRAMMES D'UN MOT:seconde methode +#1 il n'est pas raisonnable de prendre les mots du lexique pour clés car plusieurs clés ne peuvent pas designer la meme valeur +# en effet ces mots du lexiques en representant les clés auront tous la meme valeur qui est le mot dont on cherche ces anagrammes + + +def cle(chaine:str)->str: + """ à_remplacer_par_ce_que_fait_la_fonction + + Précondition : + Exemple(s) : + $$$ cle('Orangé') + 'aegnor' + + """ + a=bas_casse_sans_accent(chaine) + b=sort(a) + return b + + + + +ANAGRAMMES={} +for mot in LEXIQUE: + if not(mot in ANAGRAMMES): + mot_anagrammes = anagrammes(mot) + for elt in mot_anagrammes: + ANAGRAMMES[elt] = mot_anagrammes + + + +def anagrammes2(mot:str)->list[str]: + """ à_remplacer_par_ce_que_fait_la_fonction + + Précondition : + Exemple(s) : + $$$ + """ + return ANAGRAMMES.get(mot,[mot]) + + + +#c'est la methode avec le dictionnaire la plus rapide +i=0 +ANAGRAMMES2={} +for mote in LEXIQUE: + i+=1 + if not(mote in ANAGRAMMES2): + mot_anagrammes2 = anagrammes(mote) + for elm in mot_anagrammes2: + ANAGRAMMES2[elm] = mot_anagrammes2 + if i==30: + break +def anagrammes3(mot:str)->list[str]: + """ à_remplacer_par_ce_que_fait_la_fonction + + Précondition : + Exemple(s) : + $$$ anagrammes3('chien') + ['chien', 'chiné', 'niche', 'niché'] + """ + return ANAGRAMMES2.get(mot,[mot]) + +def anagrammes_phrase(phrase:str)->list[str]: + """ à_remplacer_par_ce_que_fait_la_fonction + + Précondition : + Exemple(s) : + $$$ + """ + res=[] + mot=[] + liste=phrase.split(' ') + for elt in liste: + mot.append(anagrammes(elt)) + " ".join() + res+=mot + return res -- GitLab