Удалить первое слово из строки в Python?
Каков самый быстрый и чистый способ удалить первое слово из строки? Я знаю, что можно использовать split
, а затем итерировать по массиву, чтобы получить нужную строку. Но я уверен, что это не самый красивый способ сделать это.
2 ответ(ов)
Другой ответ вызовет исключение, если ваша строка состоит только из одного слова, и, как я предполагаю, это не то, что вы хотите.
Вместо этого можно использовать функцию 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'
Таким образом, в случае, если строка содержит только одно слово, результат будет корректным.
Наивное решение может выглядеть следующим образом:
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"? А как насчет "中华人民共和国"?
Есть ли в Python метод подстроки 'contains' для строк?
Как перевернуть строку в Python?
Вывод строки в текстовый файл
Как заполнить строку в Python пробелами?
Диапазон букв в Python