Re: Tricher au scrabble...

Liste des GroupesRevenir à fcl python 
Sujet : Re: Tricher au scrabble...
De : michel (at) *nospam* domain.invalid (Michel)
Groupes : fr.comp.lang.python
Date : 02. Dec 2023, 03:48:09
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <874jh1tlp1.fsf@gnus.org>
References : 1 2 3 4 5
User-Agent : Gnus
Le 1 décembre 2023 yves a écrit :

dictionnaire = "/usr/share/dict/french"
with open(dictionnaire) as f:
    resultat = [mot.rstrip() for mot in f.readlines() if
sorted(mot.rstrip()) == sorted("acenrt")]

Pour les anagrammes c'est bon mais pour le scrabble on peut avoir des
lettres qui ne seraient pas utilisées et donc cet algo ne marcherait pas.

0.4 secondes sur mon ordi, quand même.

Sur le mien 0.280. Mais en reprenant le même principe que pour le
scrabble, en chargeant le fichier dans une array par longueur de mot,
j'obtiens 0.170.

fichier = "/usr/share/dict/french"

# on suppose que les mots font 27 caractères maxi
# (désinstitutionnalisassions)
MAX = 27

def charge_dico():
    dictionnaire = [[] for i in range(MAX + 1)]
    with open(fichier, 'r') as fp:
        while line := fp.readline().rstrip():
            dictionnaire[len(line)].append(line)
    return dictionnaire

def recherche(lettres, dictionnaire):
    resultat = [mot for mot in dictionnaire[len(lettres)]
                if sorted(mot) == sorted(lettres)]
    return resultat

tests = ['acenrt']

dictionnaire = charge_dico()

for lettres in tests:
    print(lettres, ':', recherche(lettres, dictionnaire))


Date Sujet#  Auteur
28 Nov 23 o Tricher au scrabble...38Dominique

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal