removeprefix, removefix
파이썬 3.9에서 removeprefix와 removeprefix 함수가 추가 되었습니다. 얼핏보면 이 함수들은 기존의 lstrip과 rstrip함수와 달라보이지는 않습니다.
그런데 이 strip함수는 하나만 잘라내는게 아니라 전부 잘라냅니다. 아래의 예제를 보시면 이해가 쉽습니다.
s = 'xyzxyzxyzxyz123123' print (s.lstrip('xyz')) print (s.removeprefix('xyz')) print (s.rstrip('123')) print (s.removesuffix('123')) # 123123123 # xyzxyzxyz123123123 # xyzxyzxyzxyz # xyzxyzxyzxyz123123
strip함수는 1번만 잘라내는게 아니라 전부 잘라내기 때문에 의도와는 다르게 쓰일 수 있습니다. 그렇다면 파이썬 3.9이하에서는 어떻게 할까요?
startswith와 endswith함수로 확인하고, [:] 함수를 이용해서 해당 부분만 잘라냅니다. 조금 번거롭지만 위 함수들을 이용하면, 동일한 효과를 얻을 수가 있습니다.
def removeprefix_alt(text,prefix): if text.startswith(prefix): text_new = text[len(prefix):] else: text_new = text return text_new def removesuffix_alt(text,suffix): if text.startswith(suffix): text_new = text[:-len(suffix)] else: text_new = text return text_new s = 'xyzxyzxyzxyz123123123' print (s.lstrip('xyz')) print (removeprefix_alt(s,'xyz')) print (s.rstrip('123')) print (removesuffix_alt(s,'xyz')) # prefix # 123123123 # xyzxyzxyz123123123 # suffix # xyzxyzxyzxyz # xyzxyzxyzxyz123123
이상으로 파이썬 3.9에 추가된 removeprefix, removesuffix함수들을 정리 해 보았습니다
댓글 없음:
댓글 쓰기