0

Удалить первое слово из строки в Python?

13

Каков самый быстрый и чистый способ удалить первое слово из строки? Я знаю, что можно использовать split, а затем итерировать по массиву, чтобы получить нужную строку. Но я уверен, что это не самый красивый способ сделать это.

2 ответ(ов)

0

Другой ответ вызовет исключение, если ваша строка состоит только из одного слова, и, как я предполагаю, это не то, что вы хотите.

Вместо этого можно использовать функцию str.partition.

>>> s = "foo bar baz"
>>> first, _, rest = s.partition(" ")
>>> rest or first
'bar baz'

>>> s = "foo"
>>> first, _, rest = s.partition(" ")
>>> rest or first
'foo'

Таким образом, в случае, если строка содержит только одно слово, результат будет корректным.

0

Наивное решение может выглядеть следующим образом:

text = "funny cheese shop"
print(text.partition(' ')[2])  # cheese shop

Однако, это не сработает в следующем (действительно искусственном) примере:

text = "Hi,nice people"
print(text.partition(' ')[2])  # people

Чтобы правильно обработать такую ситуацию, вам понадобятся регулярные выражения:

import re
print(re.sub(r'^\W*\w+\W*', '', text))

В более общем плане, невозможно дать однозначный ответ на вопрос, касающийся "слова", не зная, о каком языке идет речь. Сколько слов в "J'ai"? А как насчет "中华人民共和国"?

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь