diff --git a/tp1.py b/tp1.py
index 5a7f536fc1f35f3ff70410a729e85fc0d31f04cf..96798db8d6df8110eff17eeb17de553e09f16491 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