문자열에서 마지막 구분 기호가 나타날 때 문자열을 분할하는 데 권장되는 파이썬 관용구는 무엇입니까 ? 예:
# 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']
주의 :이 답변이 잘못 될 수있는 아래의 첫 번째 설명을 참조하십시오.