web-dev-qa-db-fra.com

Trouver la position d'un mot dans une chaîne

Avec:

sentence= input("Enter a sentence")
keyword= input("Input a keyword from the sentence")

Je veux trouver la position du mot clé dans la phrase. Jusqu'à présent, j'ai ce code qui supprime la ponctuation et met toutes les lettres en minuscule:

punctuations = '''!()-[]{};:'"\,<>./?@#$%^&*_~'''#This code defines punctuation
#This code removes the punctuation
no_punct = "" 
for char in sentence:
   if char not in punctuations:
       no_punct = no_punct + char

no_punct1 =(str.lower (no_punct)

Je sais qu'il faut un morceau de code qui trouve la position de la Parole.

5
Erjonk2001

Ceci est ce que str.find() est pour:

sentence.find(Word)

Cela vous donnera la position de départ du mot (s'il existe, sinon -1), alors vous pouvez simplement y ajouter la longueur du mot afin d'obtenir l'index de sa fin.

start_index = sentence.find(Word)
end_index = start_index + len(Word) # if the start_index is not -1
13
Kasrâmvd

Si avec position vous entendez le nième mot de la phrase, vous pouvez procéder comme suit:

words = sentence.split(' ')
if keyword in words:
    pos = words.index(keyword)

Cela divisera la phrase après chaque occurrence d'un espace et enregistrera la phrase dans une liste (Word-wise). Si la phrase contient le mot-clé, list.index () trouvera sa position.

EDIT:

L'instruction if est nécessaire pour s'assurer que le mot clé est dans la phrase, sinon list.index () générera une ValueError.

2
paolo