[python] 처음 발생시 분할

구분 기호가 처음 나타날 때 문자열을 분할하는 가장 좋은 방법은 무엇입니까?

예를 들면 다음과 같습니다.

"123mango abcd mango kiwi peach"

처음 mango으로 나누기 :

"abcd mango kiwi peach"



답변

에서 워드 프로세서 :

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발생 횟수가 이미 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)

이렇게하면 데이터가 처음으로 ‘.’으로 분할됩니다. 문자열 또는 데이터 프레임 열 값에서


답변