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 답변
-
ValueError: invalid literal for int() with base 10: '&'
이라는 오류는 "&"라는 문자열을 int로 형변환 하려할때 생기는 오류입니다.int("&")
이 코드를 실행시켜 보시면 동일한 에러를 확인하실 수 있을 것 같습니다.
또한 unpacking은 리스트 내부의 자료형과 무관하게 사용가능합니다.
lst = ["1", 2, 3.4, None] print(*lst)
댓글 입력