anagrammes¶
Classes définies pour la recherche d’anagrammes.
Alphabet¶
- class jouets.anagrammes.Alphabet(initial=None)[source]¶
Ensemble de lettres avec répétition.
Cet ensemble est stocké dans l’attribut
Alphabet._elements
, qui est un dictionnaire dont les clefs sont les lettres, et les valeurs sont le nombre d’occurence de ces lettres. Les lettres qui ont une occurence nulle sont considérées comme absentes, et ignorées dans la plupart des méthodes.>>> alpha = Alphabet("aabc") >>> alpha -= "ab" >>> alpha Alphabet("ac") >>> ("a" in alpha, "b" in alpha, "c" in alpha) (True, False, True) >>> alpha += "ad" >>> alpha Alphabet("aacd") >>> (alpha["a"], alpha["d"], alpha["X"]) (2, 1, 0)
Intervalle¶
- class jouets.anagrammes.Intervalle(mini, maxi)[source]¶
Intervalle (borne minimale et maximale).
Ajouter ou soustraire un nombre à l’intervalle applique cette opération aux deux bornes.
>>> Intervalle(0, 2) Intervalle(0, 2) >>> Intervalle(-math.inf, 2) Intervalle(-math.inf, 2) >>> Intervalle(3, 5) + 2 Intervalle(5, 7) >>> Intervalle(-math.inf, 5) - 2 Intervalle(-math.inf, 3) >>> str(Intervalle(2, math.inf)) '2:' >>> Intervalle(2, math.inf).pprint() '[2 ; +∞['
Dictionnaire arborescent¶
Le dictionnaire arborescent est décrit plus en détail sur la page de l’outil de recherche d’anagrammes.
- class jouets.anagrammes.DictionnaireArborescent[source]¶
Dictionnaire arborescent.
- _anagrammes(alphabet, lettres, *, apres=None)[source]¶
Recherche d’un seul mot formant une anagramme à alphabet.
Cette fonction est une fonction similaire à
DictionnaireArborescent.anagramme()
, mais de plus bas niveau.- Paramètres
alphabet (Alphabet) – Lettres à utiliser pour former l’anagramme.
lettres (Intervalle) – Nombre de lettres (par mot) acceptées.
apres (str) – Si différent de
None
, les anagrammes doivent être plus grandes que cet argument (dans l’ordre lexicographique).
- _multi_anagrammes(alphabet, mots, lettres, *, apres=None)[source]¶
Recherche de plusieurs mots formant une anagramme à l’argument alphabet.
- Paramètres
alphabet (Alphabet) – Lettres à utiliser pour former les anagrammes.
mots (Intervalle) – Nombre de mots acceptés.
lettres (Intervalle) – Nombre de lettres (par mot) acceptées.
apres (str) – Si différent de
None
, les anagrammes doivent être plus grandes que cet argument (dans l’ordre lexicographique).
- ajoute(lettres)[source]¶
Ajoute un mot au dictionnaire
Les dictionnaires suffixes sont créés si nécessaire.
- anagrammes(alphabet, options)[source]¶
Itérateur sur les anagrammes.
- Paramètres
- Les options sont :
options['accents']
: Booléen : les accents sont-ils pris en compte, ou ignorés.options['mots']
: Intervalle (sous la forme d’un tuple(min, max)
) : nombre de mots acceptés (entre min et max).options['lettres']
: Intervalle (sous la forme d’un tuple(min, max)
) : chaque mot doit avoir entre min et max lettres.
- charge(nom, *, accents=False)[source]¶
Charge un dictionnaire.
- Paramètres
nom (str) – Nom du fichier contenant le dictionnaire (sous la forme d’une liste de mots séparés par des espaces ou sauts de lignes). Si ce nom commence par
aspell://
, le dictionnaire aspell de la langue donnée est utilisé à la place.