Compter les syllabes dans une liste de chaînes Python sans utiliser RE
Nov 15 2020
Je dois compter le nombre de syllabes dans un fichier texte. Mon problème est que je ne sais pas comment itérer chaque caractère de chaque chaîne. Mon idée était de vérifier si une lettre est une voyelle, et si la lettre suivante n'est pas une voyelle, augmentez le nombre de 1. Mais je ne peux pas augmenter "lettre". J'ai également essayé d'utiliser la méthode "range", mais cela me pose également un problème. Que puis-je essayer? Je vous remercie. PS: Je ne peux utiliser que des méthodes intégrées Python.
txt = ['countingwords', 'house', 'plant', 'alpha', 'syllabes']
C'est mon code pour l'instant.
def syllables(text_file):
count = 0
vowels = ['a','e','i','o','u','y']
with open(text_file, 'r') as f:
txt = f.readlines()
txt = [line.replace(' ','') for line in txt]
txt = [line.replace(',','') for line in txt]
txt = [y.lower() for y in txt]
for word in txt:
for letter in word:
if letter is in vowel and [letter + 1] is not in vowel:
count += 1
Réponses
cknoll Nov 14 2020 at 23:32
Vous pourriez essayer ceci:
lines = ["You should count me too"]
count = 0
vowels = "aeiouy"
for line in lines:
for word in line.lower().split(" "):
for i in range(len(word)):
if word[i] in vowels and (i == 0 or word[i-1] not in vowels):
count +=1
print(count) # -> 5