Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | Prochaine révision Les deux révisions suivantes | ||
tris_dictionnaire_francais [2011/09/15 17:56] tyrtamos |
tris_dictionnaire_francais [2011/09/16 06:24] tyrtamos |
||
---|---|---|---|
Ligne 46: | Ligne 46: | ||
<code python> | <code python> | ||
L = [' | L = [' | ||
+ | |||
compfr = Compfr() | compfr = Compfr() | ||
L.sort(cmp=compfr) | L.sort(cmp=compfr) | ||
Ligne 65: | Ligne 66: | ||
</ | </ | ||
- | Si on est dans Python 3.x, l' | + | Si on est dans Python 3.x, l' |
+ | |||
+ | <code python> | ||
+ | from functools import cmp_to_key | ||
+ | |||
+ | L = [' | ||
+ | |||
+ | compfr = Compfr() | ||
+ | L.sort(key=cmp_to_key(compfr)) | ||
+ | for mot in L: | ||
+ | print mot | ||
+ | |||
+ | pèche | ||
+ | PÈCHE | ||
+ | pêche | ||
+ | PÊCHE | ||
+ | péché | ||
+ | PÉCHÉ | ||
+ | pécher | ||
+ | pêcher | ||
+ | </ | ||
Tel que la classe Compfr() est définie, la liste est supposée être composée de mots encodés soit en unicode, soit en ' | Tel que la classe Compfr() est définie, la liste est supposée être composée de mots encodés soit en unicode, soit en ' | ||
Ligne 71: | Ligne 92: | ||
===== Listes de test ===== | ===== Listes de test ===== | ||
- | Volà les listes utilisées pour les tests, issues de l' | + | Volà les listes utilisées pour les tests, issues de l' |
<code python> | <code python> | ||
Ligne 86: | Ligne 107: | ||
NB: u' | NB: u' | ||
+ | |||
+ | ===== Tri indexé selon le dictionnaire français ===== | ||
+ | |||
+ | Dans ce cas, la liste initiale ne change pas, et on veut obtenir l' | ||
+ | |||
+ | Voilà comment on trouve ce fichier d' | ||
+ | |||
+ | <code python> | ||
+ | L = [u' | ||
+ | |||
+ | ind = [i for i in xrange(0, | ||
+ | compfr = Compfr() | ||
+ | ind.sort(cmp=compfr, | ||
+ | for i in xrange(0, | ||
+ | print i, ind[i], L[ind[i]] | ||
+ | |||
+ | |||
+ | 0 1 cadurcien | ||
+ | 1 0 cæcum | ||
+ | 2 3 caennais | ||
+ | 3 2 cæsium | ||
+ | 4 5 cafard | ||
+ | 5 4 coercitif | ||
+ | 6 6 cœur | ||
+ | </ | ||
+ | |||
+ | Et le résultat affiché est bien l' | ||
+ | |||
+ | Si on est avec Python 3.x, l' | ||
+ | |||
+ | <code python> | ||
+ | from functools import cmp_to_key | ||
+ | |||
+ | L = [u' | ||
+ | |||
+ | ind = [i for i in xrange(0, | ||
+ | compfr = Compfr() | ||
+ | ind.sort(key=cmp_to_key(lambda v1,v2: compfr(L[v1], | ||
+ | for i in xrange(0, | ||
+ | print i, ind[i], L[ind[i]] | ||
+ | |||
+ | |||
+ | 0 1 cadurcien | ||
+ | 1 0 cæcum | ||
+ | 2 3 caennais | ||
+ | 3 2 cæsium | ||
+ | 4 5 cafard | ||
+ | 5 4 coercitif | ||
+ | 6 6 cœur | ||
+ | </ | ||
===== Recherche rapide par dichotomie dans une liste triée selon le dictionnaire français ===== | ===== Recherche rapide par dichotomie dans une liste triée selon le dictionnaire français ===== |