처음 코드

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" 가 나오면 거기서 잘라라 라는 뜻이에요.

즉, 여러 구분자를 한 번에 처리 가능!

image.png

오 👍 거의 다 맞게 쓰셨어요! 그런데 한 가지 포인트가 있어요.

filter()이터레이터를 반환하기 때문에 그냥 answer를 리턴하면 filter 객체가 나와요.

그래서 실제 리스트가 필요하다면 list()로 감싸줘야 합니다.


수정된 코드