Path: ...!2.eu.feeder.erje.net!feeder.erje.net!feeder1-2.proxad.net!proxad.net!feeder1-1.proxad.net!cleanfeed1-b.proxad.net!nnrp2-2.free.fr!not-for-mail From: yves Subject: Re: Tricher au scrabble... Newsgroups: fr.comp.lang.python References: MIME-Version: 1.0 User-Agent: Pan/0.149 (Bellevue; 4c157ba) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Date: 01 Dec 2023 17:39:07 GMT Lines: 47 Message-ID: <656a1a3b$0$10088$426a74cc@news.free.fr> Organization: Guest of ProXad - France NNTP-Posting-Date: 01 Dec 2023 18:39:07 CET NNTP-Posting-Host: 91.175.128.103 X-Trace: 1701452347 news-3.free.fr 10088 91.175.128.103:37074 X-Complaints-To: abuse@proxad.net Bytes: 2208 Le Tue, 28 Nov 2023 16:43:50 +0100, Dominique a écrit: >> Il y a encore une remarque à faire sur le style de programmation : >> si un script est composé de deux blocs, il sera plus clair pour le >> lecteur si chaque bloc est défini comme une fonction et nommé par sa >> tâche. > > J'y ai bien pensé, mais le premier bloc n'est exécuté qu'une fois, lors > de la création du dictionnaire. Je n'ai pas jugé utile de faire une > fonction... > > Je testerai le listing que tu me proposes dès que j'ai un peu de temps. > Merci pour cette approche J'ai séché aujourd'hui sur un problème wordle qui s'apparentait pour le coup à un problème de scrabble. Du coup, j'ai réimplémenté quelques idées de ce fil de façon très brute, et j'ai été surpris par la rapidité de traitement. Voici un exemple, avec une séquence de lettres qui a de nombreux anagrammes : dictionnaire = "/usr/share/dict/french" with open(dictionnaire) as f: b= [mot.rstrip() for mot in f.readlines()] c= [mot for mot in b if sorted(mot) == sorted("acenrt")] print(len(b)) print(len(c)) print(c) print('terminé') #+RESULTS: : 346200 : 9 : ['canter', 'cantre', 'carnet', 'centra', 'crante', 'encart', 'nectar', 'tancer', 'tanrec'] : terminé @+ -- Yves