Suite à ma vidéo d’initiation à JavaScript concernant la recherche de mots (palindromes, anacycliques, mots croissants…), je vous propose ici les traductions en Python
Importer les dictionnaires
Enregistrez le fichier dicos.py dans un dossier et créez un fichier recherche.py dans ce même dossier avec pour contenu :
import dicos
print(len(dicos.dico5))
En exécutant le fichier vous devriez voir le nombre 7276 qui correspond au nombre de mots de 5 lettres.
Mots en sens inverse et palindromes
import dicos
def inverse(mot):
return mot[::-1]
def palindrome(dico):
return [mot for mot in dico if mot == inverse(mot)]
Testons :
>>> inverse('BONJOUR')
'RUOJNOB'
>>> palindrome(dicos.dico6)
['SASSAS', 'SELLES', 'SENNES', 'SERRES', ... ]
Anacycliques
def anacyclique(dico):
return [mot for mot in dico if inverse(mot) in dico]
Testons :
>>> anacyclique(dicos.dico7)
['ALLIACE', 'ALLIAGE', 'ANNOTAT', 'ARETIER',...]
Mots croissants
def croissant(dico):
return [mot for mot in dico if mot == ''.join(sorted(list(mot)))]
Testons :
>>> croissant(dicos.dico6)
['ACCENT', 'ACCORT', 'AFFINS', 'AFFLUX', 'AGGLOS', 'BELLOT', 'BIJOUX', 'BILLOT', 'CHINTZ', 'DEHORS', 'EFFORT']
Q sans U
def QsansU(dico):
return [mot for mot in dico if 'Q' in mot and 'U' not in mot]
Testons :
>>> QsansU(dicos.dico5)
['QIBLA']
Toutes les voyelles
def nbVoyelles(mot):
return len([v for v in 'AEIOU' if v in mot])
def ToutesLesVoyelles(dico):
return [mot for mot in dico if nbVoyelles(mot) == 5]
Testons :
>>> nbVoyelles('BONJOUR')
2
>>> ToutesLesVoyelles(dicos.dico6)
['EBOUAI', 'ENOUAI', 'OISEAU']