programing tip

파이썬 문자열에서 마지막 구분 기호로 나누시겠습니까?

itbloger 2020. 6. 2. 08:23
반응형

파이썬 문자열에서 마지막 구분 기호로 나누시겠습니까?


문자열에서 구분 기호가 마지막으로 나타날 때 문자열을 분할하는 데 권장되는 파이썬 관용구는 무엇입니까 ? 예:

# instead of regular split
>> s = "a,b,c,d"
>> s.split(",")
>> ['a', 'b', 'c', 'd']

# ..split only on last occurrence of ',' in string:
>>> s.mysplit(s, -1)
>>> ['a,b,c', 'd']

mysplit분리 할 분리 문자의 발생 인 두 번째 인수를 사용합니다. 일반 목록 인덱싱과 마찬가지로 -1끝에서 마지막을 의미합니다. 이것을 어떻게 할 수 있습니까?


.rsplit()또는 .rpartition()대신 사용하십시오 :

s.rsplit(',', 1)
s.rpartition(',')

str.rsplit()분할 횟수를 지정할 수 str.rpartition()있지만 한 번만 분할하지만 항상 고정 된 수의 요소 (접두사, 구분 기호 및 접미사)를 반환하며 단일 분할 경우에 더 빠릅니다.

데모:

>>> s = "a,b,c,d"
>>> s.rsplit(',', 1)
['a,b,c', 'd']
>>> s.rsplit(',', 2)
['a,b', 'c', 'd']
>>> s.rpartition(',')
('a,b,c', ',', 'd')

두 방법 모두 문자열의 오른쪽에서 분리되기 시작합니다. 제공하여 str.rsplit()두 번째 인수로 최대, 당신은 단지 오른쪽 가장 발생을 분할 얻을.


rsplit을 사용할 수 있습니다

string.rsplit('delimeter',1)[1]

문자열을 반대로 가져 오려면


난 그냥 재미를 위해 이것을했다

    >>> s = 'a,b,c,d'
    >>> [item[::-1] for item in s[::-1].split(',', 1)][::-1]
    ['a,b,c', 'd']

참고 URL : https://stackoverflow.com/questions/15012228/splitting-on-last-delimiter-in-python-string

반응형