import re
def solution(myStr):
answer = []
tmp = re.split('[abc]', myStr)
answer = filter(None,tmp)
return answer
<aside> 💡
난 아직 기초부분이기 때문에, 이러한 문제가 나오면 문제 제출자는 어떠한 함수를 이용해서, 익숙해 지라는 것이 기초 문제들의 요지이지 않을까 싶다. 그래서 우선 기존의 방법보다 효율적으로 풀 수 있는 함수가 있는지 알아보자. 이 문제에선 split()를 a,b,c 3번 자를 수 있지만, 번거롭기 때문에, re.split() 메서드를 이용해보
</aside>
re.split()
사용하기 (더 깔끔함)import re
s = "a1b2c3d4"
result = re.split("[abc]", s)
print(result)
# ['', '1', '2', '3', 'd4']
👉 "[abc]"
라는 정규식은 "a"
또는 "b"
또는 "c"
가 나오면 거기서 잘라라 라는 뜻이에요.
즉, 여러 구분자를 한 번에 처리 가능!
오 👍 거의 다 맞게 쓰셨어요! 그런데 한 가지 포인트가 있어요.
filter()
는 이터레이터를 반환하기 때문에 그냥 answer
를 리턴하면 filter
객체가 나와요.
그래서 실제 리스트가 필요하다면 list()
로 감싸줘야 합니다.