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)
items()[source]

Itère sur les couples (lettre, effectif) (uniquement pour les effectifs non nuls).

keys()[source]

Itére sur les lettres présentes.

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 ; +∞['
pprint()[source]

Représentation mathématique de l’intervalle.

Au moment où j’écris ces mots, je ne l’utilise pas, mais je trouvais ça élégant.

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:
  • alphabet (list) – Lettres (sous la forme d’une liste de mots) dont on recherche les anagrammes.

  • options (dict) – Options de la recherche.

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.

clean()[source]

Supprime tous les mots du dictionnaire.

dot(prefixe='')[source]

Renvoie le code Graphviz correspondant à l’objet.

itere_mots()[source]

Itérateur sur les mots de cet arbre.