개발/Python

[파이썬] 문자열 split 첫 번째 것만 분할

MinorMan 2022. 10. 22. 02:45
반응형

<질문>

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

예를 들어:

"123mango abcd mango kiwi peach"

첫 번째 분할mango얻을:

"abcd mango kiwi peach"

<답변1>

에서the docs:

str.split([sep[, maxsplit]]) sep를 구분 기호 문자열로 사용하여 문자열의 단어 목록을 반환합니다. maxsplit이 주어지면 최대 maxsplit 분할이 수행됩니다(따라서 목록은 최대 maxsplit+1 요소를 갖습니다).

s.split('mango', 1)[1]

<답변2>

>>> s = "123mango abcd mango kiwi peach"
>>> s.split("mango", 1)
['123', ' abcd mango kiwi peach']
>>> s.split("mango", 1)[1]
' abcd mango kiwi peach'

<답변3>

나에게 더 나은 접근 방식은 다음과 같습니다.

s.split('mango', 1)[-1]

... 그 발생이 문자열에 없으면 "IndexError: list index out of range".

그러므로-1발생 횟수는 이미 1로 설정되어 있습니다.


<답변4>

당신은 또한 사용할 수 있습니다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그것은 항상 다음과 같은 형식으로 튜플을 반환한다는 것입니다.

(
, , )

따라서 출력 압축을 풀면 다음과 같이 매우 유연합니다.언제나결과 튜플에서 3개의 요소가 됩니다.


<답변5>

df.columnname[1].split('.', 1)

이렇게 하면 '.'가 처음 나타나는 데이터를 분할합니다. 문자열 또는 데이터 프레임 열 값에서.

반응형