Ответы:
Из документов :
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>)
Таким образом, это делает распаковку вывода действительно гибкой, поскольку в результирующем кортеже всегда будет 3 элемента.
df.columnname[1].split('.', 1)
Это разделит данные с первым появлением «.» в строке или столбце данных значения столбца.
maxsplit
счетчика можно выполнить больше разбиений , последний элемент в списке будет содержать остаток строки (включая любыеsep
символы / строки).