par , 03/11/2019 à 21h34 (1430 Affichages)
Version JS : https://www.developpez.net/forums/bl...etique-nombre/
Pour un débutant en Python, ce n'est pas évident, car il faut connaître l'existence de Counter(), findall() et les subtilités du tri en UTF-8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| #! python3
# coding: utf-8
from collections import Counter
from re import findall
import locale
locale.setlocale(locale.LC_ALL, ('fr_FR', 'UTF-8'))
texte = '''
C'est l'évadé, du Névada.
Qui s'évada dans, la vallée
Dans la vallée, du Névada ?
Qu'il dévala, pour s'évader
Sur un vilain vélo volé !
Qu'il a volé, dans une villa
Et le valet, qui fut volé.
Vit l'évadé, qui s'envola
'''
z = findall('[a-zA-Z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]*', texte.lower())
lst = sorted([x for x in z if x != '' and len(x) > 2], key=locale.strxfrm)
print('Nombre de mots = {}'.format(len(lst)))
cnt = Counter(lst)
for key, value in cnt.items():
print('{} : {}'.format(key, value))
'''
dans : 3
dévala : 1
envola : 1
est : 1
évada : 1
évadé : 2
évader : 1
fut : 1
névada : 2
pour : 1
qui : 3
sur : 1
une : 1
valet : 1
vallée : 2
vélo : 1
vilain : 1
villa : 1
vit : 1
volé : 3
''' |
Licence Creative Commons Attribution 2.0 Belgique