Каков наилучший способ разбить строку при первом появлении разделителя?
Например:
"123mango abcd mango kiwi peach"
разделив на первое, mango
получим:
"abcd mango kiwi peach"
Из документов :
str.split([sep[, maxsplit]])
Вернуть список слов в строке, используя sep в качестве строки-разделителя. Если задан maxsplit, то делается не более maxsplit (таким образом, список будет содержать не более
maxsplit+1
элементов).
s.split('mango', 1)[1]
maxsplit
счетчика можно выполнить больше разбиений , последний элемент в списке будет содержать остаток строки (включая любыеsep
символы / строки).источник
Для меня лучший подход заключается в следующем:
... потому что если случится, что вхождение не в строке, которую вы получите "
IndexError: list index out of range"
.Следовательно
-1
, не будет причинено никакого вреда, так как количество вхождений уже установлено в единицу.источник
Вы также можете использовать
str.partition
:Преимущество использования в
str.partition
том, что он всегда возвращает кортеж в форме:Таким образом, это делает распаковку вывода действительно гибкой, поскольку в результирующем кортеже всегда будет 3 элемента.
источник
Это разделит данные с первым появлением «.» в строке или столбце данных значения столбца.
источник