반복자를 다룰 때 반복 횟수도 유지해야 하는 경우가 많습니다. Python은 이 작업을 위한 내장 함수 enumerate()를 제공하여 프로그래머의 작업을 용이하게 합니다. enumerate() 메소드는 iterable에 카운터를 추가하고 이를 열거 객체의 형태로 반환합니다. 이 열거된 객체는 루프에 직접 사용되거나 list() 함수를 사용하여 튜플 목록으로 변환될 수 있습니다.
통사론: 열거(반복 가능, 시작=0)
C 문자열 비교 프로그램매개변수:
- 반복 가능: 반복을 지원하는 모든 객체
- 시작: 카운터가 시작되는 인덱스 값, 기본적으로 0입니다.
반품: 원래 iterable의 인덱스와 요소 쌍이 있는 반복자를 반환합니다.
예
여기서는 목록과 문자열 모두에 enumerate() 함수를 사용하고 있습니다. 각각에 대한 열거 객체를 생성하고 반환 유형을 표시합니다. 또한 문자열에 적용될 때 열거의 시작 인덱스를 변경하여 목록과 문자열에 대한 인덱스-요소 쌍을 만드는 방법도 보여줍니다. .
파이썬3
l1> => [> 'eat'> ,> 'sleep'> ,> 'repeat'> ]> s1> => 'geek'> # creating enumerate objects> obj1> => enumerate> (l1)> obj2> => enumerate> (s1)> print> (> 'Return type:'> ,> type> (obj1))> print> (> list> (> enumerate> (l1)))> # changing start index to 2 from 0> print> (> list> (> enumerate> (s1,> 2> )))> |
>
>
산출:
Return type: [(0, 'eat'), (1, 'sleep'), (2, 'repeat')] [(2, 'g'), (3, 'e'), (4, 'e'), (5, 'k')]>
루프에서 객체 열거 사용
Enumerate()는 l1이라는 목록과 함께 사용됩니다. 먼저 인덱스와 요소 쌍의 튜플을 인쇄합니다. 그런 다음 함께 인쇄하면서 시작 색인을 변경합니다. 마지막으로 인덱스와 요소를 각각 한 줄에 별도로 인쇄합니다.
파이썬3
l1> => [> 'eat'> ,> 'sleep'> ,> 'repeat'> ]> # printing the tuples in object directly> for> ele> in> enumerate> (l1):> > print> (ele)> # changing index and printing separately> for> count, ele> in> enumerate> (l1,> 100> ):> > print> (count, ele)> # getting desired output from tuple> for> count, ele> in> enumerate> (l1):> > print> (count)> > print> (ele)> |
>
>
산출:
(0, 'eat') (1, 'sleep') (2, 'repeat') 100 eat 101 sleep 102 repeat 0 eat 1 sleep 2 repeat>
다음 요소에 접근하기
Python에서 enumerate() 함수는 관련된 모든 반복자 함수와 메서드를 상속하는 반복자 역할을 합니다. 따라서 next() 함수와 __next__() 메서드를 다음과 함께 사용할 수 있습니다. 낱낱이 세다 물체.
열거 객체의 다음 요소에 액세스하려면 next() 함수를 사용할 수 있습니다. 열거 객체를 입력으로 사용하고 반복에서 다음 값을 반환합니다.
파이썬3
자바 부울 문자열
fruits> => [> 'apple'> ,> 'banana'> ,> 'cherry'> ]> enum_fruits> => enumerate> (fruits)> next_element> => next> (enum_fruits)> print> (f> 'Next Element: {next_element}'> )> |
>
>
자바와 스윙
산출:
Next Element: (0, 'apple')>
next()를 다시 호출하여 후속 요소를 검색할 수 있습니다.
파이썬3
fruits> => [> 'apple'> ,> 'banana'> ,> 'cherry'> ]> enum_fruits> => enumerate> (fruits)> next_element> => next> (enum_fruits)> print> (f> 'Next Element: {next_element}'> )> |
>
>
산출:
Next Element: (0, 'apple')>
next()가 호출될 때마다 열거 객체의 내부 포인터는 다음 요소로 이동하여 해당 인덱스와 값의 튜플을 반환합니다.