python list를 *로 출력시키던중 발생한 오류에 대해 질문합니다

조회수 272회

안녕하세요. 파이썬 리스트의 출력이 여러모로 헷갈려서 질문드립니다. 리스트 내의 요소가 정수형일 경우 *를 사용하면 대괄호가 벗겨진채 출력되어서 자주 사용했었는데요, 이번에 함수를 통해 정렬된 리스트에 같은 식으로 적용해보려 했는데, ValueError: invalid literal for int() with base 10: '&' 이러한 오류가 발생했습니다. 리스트 내의 요소 타입이 달라졌을까 싶어 출력해봤지만, 정수형은 맞는것 같아서 더 헷갈리더군요. 어디에서 문제가 발생한 것인지 가르쳐주신다면 감사하겠습니다.

def sel_sort(a):
    for i in range(len(a)-1):
        min_idx = i
        for j in range(i, len(a)):
            if a[j] < a[min_idx]:
                min_idx = j
        a[i], a[min_idx] = a[min_idx], a[i]
    return

lst = [3, 2, 1, 4, 5, 9, 8, 10, 6, 7]
sel_sort(lst)
print(type(lst[0]))
print(*lst)

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    ValueError: invalid literal for int() with base 10: '&' 이라는 오류는 "&"라는 문자열을 int로 형변환 하려할때 생기는 오류입니다.

    int("&")
    

    이 코드를 실행시켜 보시면 동일한 에러를 확인하실 수 있을 것 같습니다.

    또한 unpacking은 리스트 내부의 자료형과 무관하게 사용가능합니다.

    lst = ["1", 2, 3.4, None]
    print(*lst)
    
    • 왜인지는 모르겠지만 자고 일어나서 다시 돌려보니 어제 뜨던 오류가 사라져 있더군요. 그것과는 별개로 답변덕에 새롭게 알아가는 것이 생겨 도움주신 것에 감사드립니다. psmin0325 2022.10.9 15:15

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)