Відповіді:
З документів :
str.split([sep[, maxsplit]])
Поверніть список слів у рядку, використовуючи sep як розділовий рядок. Якщо задано maxsplit , щонайбільше maxsplit розщеплення робиться (таким чином, у списку буде не більше
maxsplit+1
елементів).
s.split('mango', 1)[1]
>>> s = "123mango abcd mango kiwi peach"
>>> s.split("mango", 1)
['123', ' abcd mango kiwi peach']
>>> s.split("mango", 1)[1]
' abcd mango kiwi peach'
Для мене кращим підходом є такий:
s.split('mango', 1)[-1]
... тому що якщо трапиться, що виникнення не в рядку, ви отримаєте "IndexError: list index out of range"
.
Тому -1
не отримає ніякої шкоди, тому що кількість подій вже встановлено в один.
Ви також можете використовувати str.partition
:
>>> text = "123mango abcd mango kiwi peach"
>>> text.partition("mango")
('123', 'mango', ' abcd mango kiwi peach')
>>> text.partition("mango")[-1]
' abcd mango kiwi peach'
>>> text.partition("mango")[-1].lstrip() # if whitespace strip-ing is needed
'abcd mango kiwi peach'
Перевага використання str.partition
полягає в тому, що він завжди поверне кортеж у формі:
(<pre>, <separator>, <post>)
Таким чином, це робить розпакування виводу дійсно гнучким, оскільки в отриманому кортежі завжди буде три елементи.
df.columnname[1].split('.', 1)
Це розділить дані з першого появи "." у значенні стовпця або фрейму даних.
maxsplit
підрахунку можна виконати більше розщеплення , останній елемент у списку буде містити решту рядка (включаючи будь-якіsep
символи / рядки).