Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > fr.comp.lang.python > #4140

Re: Tricher au scrabble...

From Michel <michel@domain.invalid>
Newsgroups fr.comp.lang.python
Subject Re: Tricher au scrabble...
Date 2023-12-02 03:48 +0100
Organization A noiseless patient Spider
Message-ID <874jh1tlp1.fsf@gnus.org> (permalink)
References <uk4fm4$852n$1@dont-email.me> <recherche-20231128131821@ram.dialup.fu-berlin.de> <uk51rm$auel$2@dont-email.me> <656a1a3b$0$10088$426a74cc@news.free.fr> <656a1e57$0$10088$426a74cc@news.free.fr>

Show all headers | View raw


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))

Back to fr.comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Tricher au scrabble... Dominique <dominique.sextant@orange.fr.invalid> - 2023-11-28 11:33 +0100
  Re: Tricher au scrabble... Dominique <dominique.sextant@orange.fr.invalid> - 2023-11-28 16:39 +0100
  Re: Tricher au scrabble... Dominique <dominique.sextant@orange.fr.invalid> - 2023-11-28 16:43 +0100
    Re: Tricher au scrabble... yves <yves@free.invalid> - 2023-12-01 17:39 +0000
      Re: Tricher au scrabble... yves <yves@free.invalid> - 2023-12-01 17:56 +0000
        Re: Tricher au scrabble... Michel <michel@domain.invalid> - 2023-12-02 03:48 +0100
          Re: Tricher au scrabble... yves <yves@free.invalid> - 2023-12-06 22:22 +0000
            Re: Tricher au scrabble... Michel <michel@domain.invalid> - 2023-12-07 10:28 +0100
            Re: Tricher au scrabble... Thierry Pinelli <olmia2b+news@gmail.com> - 2023-12-07 16:35 +0100
            Re: Tricher au scrabble... Thierry Pinelli <olmia2b+news@gmail.com> - 2023-12-07 17:52 +0100
            Re: Tricher au scrabble... yves <yves@free.invalid> - 2023-12-07 18:00 +0000
            Re: Tricher au scrabble... yves <yves@free.invalid> - 2023-12-07 18:07 +0000
  Re: Tricher au scrabble... yves <yves@free.invalid> - 2023-11-28 16:05 +0000
    Re: Tricher au scrabble... yves <yves@free.invalid> - 2023-11-28 16:17 +0000
      Re: Tricher au scrabble... Dominique <dominique.sextant@orange.fr.invalid> - 2023-11-29 05:55 +0100
    Re: Tricher au scrabble... yves <yves@free.invalid> - 2023-11-28 20:16 +0000
  Re: Tricher au scrabble... Michel <michel@domain.invalid> - 2023-11-28 17:52 +0100
    Re: Tricher au scrabble... Dominique <dominique.sextant@orange.fr.invalid> - 2023-11-29 05:57 +0100
  Re: Tricher au scrabble... Michel <michel@domain.invalid> - 2023-11-28 19:23 +0100

csiph-web