처음 코드

def solution(n, slicer, num_list):
    answer = []
    for a, b, c in slicer:
        if n == 1:
            answer = num_list[:b+1]
        elif n == 2:
            answer = num_list[a:]
        elif n == 3:
            answer = num_list[a:b+1]
        else: # 4일 경우
            answer = num_list[a:b+1:c]
    return answer

TypeError: cannot unpack non-iterable int object

<aside> 💡

언패킹이 잘못 되었다..! 전에 리스트에 여러 값들이 있으면 그 개수만큼 변수에 넣을 수 있는 것을 언패킹이라 했던 것 같은데..! for문으로 반복을 돌려서 그런가..? 한번만 해도 되나..? 이유를 알아보자..

</aside>

지금 코드에서 핵심 오류가 있어요 🙂

for a, b, c in slicer:

👉 slicer리스트 [a, b, c] 형태일 텐데, for 문을 쓰면 a, b, c에 각각 한 번에 언패킹되지 않고, slicer 안의 원소들을 하나씩 꺼내려 합니다.

즉, slicer = [1, 5, 2]라면, for a, b, c in slicer:는 실행 불가예요. (ValueError 발생)

<aside> 💡

아..!! a, b, c, = slicer 이렇게 한번만 해도 되는 구나!!!

</aside>

def solution(n, slicer, num_list):
    answer = []
    # for a, b, c in slicer: # 잘못 된 코드!
    a, b, c = slicer
    if n == 1:
        answer = num_list[:b+1]
    elif n == 2:
        answer = num_list[a:]
    elif n == 3:
        answer = num_list[a:b+1]
    else: # 4일 경우
        answer = num_list[a:b+1:c]
    return answer