왜 이런 오류가 뜨는지 도무지 이해가 가지 않습니다. TypeError: argument of type 'int' is not iterable
조회수 7640회
먼저 코드부터 보여드리겠습니다.
arr1 = [1,2,3,3,3,3,4,4]
arr2 = []
arr3 = {1:0,2:0,3:0,4:0}
# 1. arr1의 중복되는 숫자 제외하고 제외한 set값 arr2에 리스트로 추가하기
arr2 = list(set(arr1))
a = 0
b = 0
c = 0
# 2. arr2에 넣어둔 숫자를 arr1과 비교하여 중복되는 경우 arr3의 딕셔너리에 횟수 추가하기
for a in range(len(arr2)):
for b in range(len(arr1)):
if arr2[a] in arr1[b]:
arr3[a+1] += 1
마지막에서 두번째 라인인 ' if arr2[a] in arr1[b]: ' 부분에서 오류가 뜹니다.
if arr2[a] in arr1[b]:
TypeError: argument of type 'int' is not iterable
혹시나 arr1과 arr2가 int형이 아니게 된건가 싶어서 type으로 프린트 해봐도 int로 뜨는데 왜 이런 오류가 뜨는지 답답합니다.
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
TypeError: argument of type 'int' is not iterable
라는 에러메시지는 iterable 타입(리스트, 튜플 같은)이 와야할 자리에 int 타입이 있기 때문에 발생하는 에러입니다.에러가 발생한 코드에서 변수는 두개 입니다. 이 중에 iterable 이어야할 것은 뒤의 것입니다.
in arr1[b]
에서,in
은 뒤쪽에 (집합적인) iterable 이 있어야 하는데,arr1[b]
는 그냥 단순한int
정수 하나입니다.- 몰랐던 내용인데 정말 감사드립니다... 큰 도움 되었습니다. 결과적으로 in 대신 == 을 넣으니 원하는대로 작동하네요 빠른답변 정말 감사합니다 알 수 없는 사용자 2021.6.11 16:37
댓글 입력