TP2 Mise en fonctionnement de Anagrammes phrase
Tout est beaucoup plus facile quand on a bien dormi et bien mangé
This commit is contained in:
parent
ddc3853174
commit
f2216cc90b
|
@ -434,27 +434,27 @@ print('La première méthode à mis %s secondes, et la deuxième %s secondes' %
|
||||||
partie('Phrases d\'anagrammes') # Geoffrey
|
partie('Phrases d\'anagrammes') # Geoffrey
|
||||||
|
|
||||||
question(1)
|
question(1)
|
||||||
|
def arbre_vers_liste(arbre, precede):
|
||||||
|
# dict → list
|
||||||
def arbre_vers_liste(arbre):
|
# TODO Docstring
|
||||||
# [[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 = []
|
possibilites = []
|
||||||
# for i in arbre:
|
for i in arbre:
|
||||||
|
if type(arbre[i]) == dict:
|
||||||
|
possibilites = possibilites + arbre_vers_liste(arbre[i], precede + [i])
|
||||||
|
elif arbre[i] == None:
|
||||||
|
possibilites = possibilites + [precede + [i]]
|
||||||
return possibilites
|
return possibilites
|
||||||
|
|
||||||
|
|
||||||
def annagrammes_arbre(liste):
|
def annagrammes_arbre(liste):
|
||||||
# TODO Docstring
|
# TODO Docstring
|
||||||
|
# [1, 2] ⇒ {1: [1, 3], 2: [2, 4]}
|
||||||
anagrammesPremier = anagrammes(liste[0])
|
anagrammesPremier = anagrammes(liste[0])
|
||||||
if len(liste) > 1: # Si il y a des anagrammes après
|
if len(liste) > 1: # Si il y a des anagrammes après
|
||||||
res = []
|
return dict((i, annagrammes_arbre(liste[1:])) for i in anagrammesPremier)
|
||||||
for i in anagrammesPremier:
|
|
||||||
res.append([i, annagrammes_arbre(liste[1:])])
|
|
||||||
return res
|
|
||||||
else:
|
else:
|
||||||
return anagrammesPremier
|
return dict((i, None) for i in anagrammesPremier)
|
||||||
|
|
||||||
|
|
||||||
def developpement(mots):
|
def developpement(mots):
|
||||||
|
@ -469,10 +469,15 @@ def annagrammes_phrase(phrase):
|
||||||
# TODO Docstring
|
# TODO Docstring
|
||||||
mots = phrase.split()
|
mots = phrase.split()
|
||||||
anagrammesArbre = annagrammes_arbre(mots)
|
anagrammesArbre = annagrammes_arbre(mots)
|
||||||
annagrammesMots = [anagrammes(i) for i in mots]
|
# print(anagrammesArbre) # DEBUG
|
||||||
return arbre_vers_liste(anagrammesArbre)
|
# annagrammesMots = [anagrammes(i) for i in mots]
|
||||||
|
liste = arbre_vers_liste(anagrammesArbre, [])
|
||||||
|
# print(liste) # DEBUG
|
||||||
|
return [' '.join(i) for i in liste]
|
||||||
|
|
||||||
print(annagrammes_phrase('orange orange orange')) # DEBUG
|
|
||||||
|
print(annagrammes_phrase('détruirions épargnions')) # DEBUG
|
||||||
|
# print(arbre_vers_liste({1: None, 3: {5: None}}, [])) # DEBUG
|
||||||
|
|
||||||
partie('Sauvegarde et récupération')
|
partie('Sauvegarde et récupération')
|
||||||
|
|
||||||
|
@ -502,6 +507,6 @@ def charger_dico():
|
||||||
ANAGRAMMES = dict()
|
ANAGRAMMES = dict()
|
||||||
f = open(ANAGRAMMES_FICHIER, 'r')
|
f = open(ANAGRAMMES_FICHIER, 'r')
|
||||||
for l in f:
|
for l in f:
|
||||||
decoupe = ':'.split(str(f))
|
decoupe = ':'.split(str(l))
|
||||||
ANAGRAMMES[decoupe[0]] = decoupe[1:]
|
ANAGRAMMES[decoupe[0]] = decoupe[1:]
|
||||||
f.close()
|
f.close()
|
||||||
|
|
Reference in a new issue