반복 가능한 객체 iter

iterator

  • for 반복문을 사용할 때 range를 사용했습니다.
  • 이 for 반복문을 설명할 때 for i in range(100):은 0부터 99까지 연속된 숫자를 만들어 내는것처럼 보이지만,
  • 사실은 숫자를 모두 만들어 내는 것이 아니라 0부터 99까지 값을 차례대로 꺼낼 수 있는 이터레이터를 하나만 만들어냅니다.
  • 이후 반복할 때마다 이터레이터에서 숫자를 하나씩 꺼내서 반복합니다.
1
2
3
4
5
6
7
8
9
10
list_iter= [1, 2, 3]
list_iter = [1, 2, 3].__iter__()
list_iter.__next__()
#출력값 : 1
list_iter.__next__()
#출력값 : 2
list_iter.__next__()
#출력값 : 3
list_iter.__next__()
#error Traceback (most recent call last) < 다음 값이 존재하지 않기 때문에 호출 에러
  • 아래와 같은 파이토치 용법에서도 똑같은 의미로 사용된 것입니다.
  • 기본적으로 iter()는 iterator를 반환하는 iris_loader에서 iter() 메서드를 호출합니다.
  • next() 그런 다음 해당 반복자에서 next() 메서드를 호출하여 첫 번째 반복을 가져옵니다.
  • next()를 다시 실행하면 반복자의 두 번째 항목 등을 얻을 수 있습니다.
1
images, labels = next(iter(train_loader))
Author

InhwanCho

Posted on

2022-12-12

Updated on

2022-12-12

Licensed under

Comments