web-dev-qa-db-ja.com

文字列から最初と最後の単語を抽出する方法は?

私は学校でやらなければならないことで小さな問題を抱えています...

私の仕事は、ユーザーから生の入力文字列を取得することです(text = raw_input())。その文字列の最初と最後の単語を出力する必要があります。

誰かがそれを手伝ってくれますか?私は一日中答えを探していました...

17
Lior Dahan

最初に str.split を使用して文字列を単語のlistに変換する必要があります。その後、次のようにアクセスできます。

>>> 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')

Python 3.xから、あなたは単にやることができます:

>>> first, *middle, last = my_str.split()
30

Python 3を使用している場合、これを行うことができます。

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

最初と最後を除くすべての単語は、変数middleに入ります。

12

xが入力だとしましょう。その後、次のことができます。

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

正規表現を使用した回答が多すぎることはありません(この場合、これは最悪の解決策のように見えます)。

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

あなたがするだろう:

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

次のfunctionに文字列を渡すだけです:

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

使用法

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

結果

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