Enumerate
1. enumerate
-
enumerate()는 ‘열거하다’라는 뜻의 함수로, 순서가 있는 자료형(list, set, tuple 등)을 인덱스를 포함한 enumerate 객체로 리턴한다. 사용법은 다음과 같다.
>>> a = [1, 2, 3, 2, 45, 2, 5] >>> a [1, 2, 3, 2, 45, 2, 5] >>> enumerate(a) <enumerate object at 0x1010f83f0> >>> list(enumerate(a)) [(0, 1), (1, 2), (2, 3), (3, 2), (4, 45), (5, 2), (6, 5)]
이처럼 list()로 결과를 추출할 수 있는데, 인덱스를 자동으로 부여해주기 때문에 매우 편리하게 사용할 수 있다.
그렇다면 a = [‘a1’, ‘b2’, ‘c3’]가 있을 때 이 리스트의 인덱스와 값을 함께 출력하려면 어떻게 해야 할까?for i in range(len(a)): print(i, a[i])
먼저 위 코드와 같은 형태를 생각할 수 있지만, 값을 가져오기 위해 불필요한 a[i] 조회 작업과 전체 길이를 조회하여 루프를 처리하는 형태가 깔끔해 보이지않는다. 굳이 range()를 사용하지 않고 구현하고 싶다면
i = 0 for v in a: print(i, v) i += 1
위 코드는 값을 깔끔하게 처리하긴 했지만 인덱스를 위한 변수를 별도로 관리하는 형태라 이 또한 깔끔하지 않다. 가장 깔끔한 방식은 다음과 같이 enumerate()를 활용하는 방법이다.
for i, v in enumerate(a): print(i, v)
댓글남기기