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