파이썬 iter 함수 질문입니다.
nums = [11,22,33]
it = iter(nums)

while True:
    try:
        num = next(it)
    except StopIteration:
        break
    print(num)

위와 같은 예제를 접했습니다.
그런데 제가 알기론 iter 함수 없이

num= [1,2,3]
next_num = reversed(next_num)

print(next(num))
print(next(num))
print(next(num))

두 번째와 같이 코딩해도
결과가
1
2
3
으로 잘 나오는 것 같은데
iter 함수는 왜 써준 건지 이해가 안돼서 질문 드립니다.
답변 주시면 감사하겠습니다!


댓글 확인하고 수정했습니다.

그리고 선생님께서 주신 댓글을 읽어보고 생각해보았습니다.
"두 번째 코드는 이터레이터가 아니라 오류가 발생한다"

이 말씀은 iter함수는 일반변수를 이터레이터화 시켜준다는 의미로 해석되는데
제가 해석한 게 맞을까요?

개발자가_되어보자 337

M 2020년 12월 17일 2:11 오후

제가 실수했네요 수정하겠습니다. - 개발자가_되어보자님, 2020년 12월 17일 2:07 오후 추천 , 대댓글
목록으로
1개의 답변이 있습니다. 1 / 1 Page

iter가 일반변수를 이터레이터화 하기보다는 이터레이터로 만들수 있는 자료형만 가능합니다.

iter("abc") 는 가능하고 iter(1234)는 불가능합니다. iter가 가능한 자료형은 순서가 있는 시퀀스형태의 자료형만 가능합니다.

박응용

2020년 12월 17일 3:28 오후

iter("abc")에서 "abc"는 문자열 즉 튜플이기 때문에 반복 가능한 자료형이고 iter(1234)에서 1234는 일반 정수 값이기 때문에 반복 불가능하다고 이해 했는데 제가 맞게 이해한 건가요? - 개발자가_되어보자님, 2020년 12월 20일 11:03 오후 추천 , 대댓글
@개발자가_되어보자님 네 맞습니다. 파이썬 시퀀스 자료형에 대해서 검색해 보세요. - 박응용님, 2020년 12월 21일 1:41 오전 추천 , 대댓글
답변 주셔서 감사합니다! - 개발자가_되어보자님, 2020년 12월 22일 11:08 오후 추천 , 대댓글