구분 기호가 처음 나타날 때 문자열을 분할하는 가장 좋은 방법은 무엇입니까?
예를 들면 다음과 같습니다.
"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)
이렇게하면 데이터가 처음으로 ‘.’으로 분할됩니다. 문자열 또는 데이터 프레임 열 값에서
답변
