web-dev-qa-db-fra.com

Comment extraire le premier et le dernier mot d'une chaîne?

J'ai un petit problème avec quelque chose que je dois faire à l'école ...

Ma tâche consiste à obtenir une chaîne d'entrée brute d'un utilisateur (text = raw_input()) Et je dois imprimer le premier et le dernier mot de cette chaîne.

Est-ce que quelqu'un peut m'aider avec ça? Je cherchais une réponse toute la journée ...

15
Lior Dahan

Vous devez d’abord convertir la chaîne en list mots à l’aide de str.split puis vous pourrez y accéder comme suit:

>>> my_str = "Hello SO user, How are you"
>>> Word_list = my_str.split()  # list of words

# first Word  v              v last Word
>>> Word_list[0], Word_list[-1]
('Hello', 'you')

Depuis Python 3.x, vous pouvez simplement faire:

>>> first, *middle, last = my_str.split()
24
Moinuddin Quadri

Si vous utilisez Python 3, vous pouvez faire ceci:

text = input()
first, *middle, last = text.split()
print(first, last)

Tous les mots sauf le premier et le dernier entreront dans la variable middle.

9
Anand Chitipothu

Disons que x est votre contribution. Ensuite, vous pouvez faire:

 x.partition(' ')[0]
 x.partition(' ')[-1]
6
toom

Certains pourraient dire qu'il n'y a jamais trop de réponses utilisant des expressions régulières (dans ce cas, cela ressemble aux pires solutions ..):

>>> import re
>>> string = "Hello SO user, How are you"
>>> matches = re.findall(r'^\w+|\w+$', string)
>>> print(matches)
['Hello', 'you']
2
quapka

Vous feriez:

print text.split()[0], text.split()[-1]
1
Mike

Passez simplement votre chaîne dans la fonction suivante

def first_and_final(str):
    res = str.split(' ')
    fir = res[0]
    fin = res[len(res)-1]
    return([fir, fin])

Utilisation

first_and_final('This is a sentence with a first and final Word.')

Résultat

['This', 'Word.']
0
Cybernetic