본문 바로가기

🐍Python

[TIL] 파이썬 enumerate 함수

for (index, rank) in enumerate(rank_list):
    rank_result_list += [{"rank": index+1, "value": rank.text}]

rank_result_list

enumerate 는 '열거하다'는 뜻. 주로 for 문을 통해 반복문을 만들 때 몇 번째 반복문인지 순서가 있는 자료형(리스트, 튜플, 문자열)을 입력으로 받아 인덱스 값을 포함하는 객체로 돌려준다. 

네이버 급상승 검색어 사이트 크롤링 과정에서 enumerate 함수를 사용했다. 예시를 들어보자. 

▲ 1. 여차저차 크롤링을 했다. 사이트에서 뽑은 rank_list의 모습. 앞에 있는 html 코드를 없애보자. 

 2. print(rank.text.split()) 을 통해 rank_list의 text 값만 뽑고, split을 통해 공백을 제거한 뒤 단어만 가지고 왔다.

for (index, rank) in enumerate(rank_list):   # index와 rank를 rank_list에서 enumerate 기준으로 출력하는데,
print(index+1, rank.text)    # index + 1, rank.text 로 뽑아줘 (첫 index는 0이기 때문에 +1를 한다) 

▲ 3. 급상승 검색어와순위를 알고 싶었으므로 enumerate 함수를 사용해 rank_list의 값을 다시 정렬한다.