파이썬 문자열 함수 질문..
조회수 619회
'fdsf-fg'.rstrip('-fg')과 'fdsg-fg'.rstrip('-fg')를 실행하면 결과가 모두 'fds'로 나옵니다. 각각 fdsf, fdsg가 나와야 정상인데 왜 'fds'로 나올까요?
'fdsf-fg'에서 인덱스3의 'f'대신 g를 제외한 나머지 소문자 알파벳으로 바꾸어서 실행하면 정상적으로 그 알파벳이 출력되거던요...
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
String.rstrip에 넣어주는 arg의 의미는
String.rstrip(SUBSTRING)
이 아니라
String.rstrip(CHARACTORS)
입니다.
변경하려는 문자열 오른쪽부터 좌측으로 seek 하면서 확인하는 문자들 중, arg로 넘겨주는 문자들의 집합(CHARACTORS)에 속해 있는 것들은 모조리 strip 해준다는 의미라서 위에서 말씀하신 결과가 나오는게 맞습니다.
https://www.tutorialspoint.com/python/string_rstrip.htm
https://www.programiz.com/python-programming/methods/string/rstrip
String 메소드를 조합해서 어떻게든 구현할 수 있겠지만
아마도 의도한 기능과 가장 유사하면서 심플하게 구현하려면 regex를 사용해야 하지 않을까 싶네요.
import re pattern = re.compile(r'-fg$') pattern.sub('', 'fdsf-fg-fg') # 'fdsf-fg'
댓글 입력