728x90
728x90
enumerate
대부분 for루프를 돌면서 인덱스 변수를 증가시킨다.
하지만 파이썬에선 enumnerate()라는 내장함수를 이용해서 이런 인덱스 변수 없이 반복문을 돌릴 수 있다.
파이썬스러운 함수중에 하나이다.
인덱스와 원소를 동시에 접근하면서 루프를 동시에 돌릴 수 있기때문에
사용법-일반for문
for <원소> in <목록>:
목록은 리스트,튜플,문자열,반복자 등 순서가 있는 모든 데이터타입에 해당한다.
원소는 흔히 루프변수라고 불리는 것.
그래서 목록부분에 넘긴 객체가 담고 있는 원소들이 루프가 도는동안 하나씩 차례로 할당이 된다.
예를 들어 3개의 글자를 담은 리스트를 대상으로 루프를 돌면 각각 글자를 출력한다
또는 리스트의 인덱스와 같이 출력하고 싶다면 이렇게 range(len(리스트))를 가지고 출력한다.
하지만 이런 방식은 파이썬스러운 방법이지 않다.
그래서 이를 대신할 enumerate함수를 쓴다.
사용법- enumerate()함수
for <원소> in enumerate(<목록>):
기본적인 for문과 같지만, output이 튜플형식으로 리턴된다.
결국 인덱스와 같이 리턴되기 때문에 range(len(리스트))를 가지고 수행한 결과와 같다. 형식은 튜플이고
튜플형식을 유지하지 않고 싶다면 이렇게 사용하면 아예 ange(len(리스트))를 가지고 수행한 결과와 같다.
또는 인덱스를 0이 아니라 1로 시작하고 싶다면 enumerate()의 start인자에 시작하고 싶은 숫자를 넣으면 된다.
출처
https://www.daleseo.com/python-enumerate/
728x90
반응형
'🍃 Language > Python' 카테고리의 다른 글
[python] 정규표현식과 Re모듈함수(match/search/findall/fullmatch) (0) | 2021.07.05 |
---|---|
[python] String을 식으로 반환해주는 eval() 함수 (0) | 2021.06.22 |
[Python] 순열(permutations )과 조합(combinations) (0) | 2021.05.26 |
[Python] 문자열찾기 | find/startswith/endswith (0) | 2021.05.25 |
[Python] zip으로 index랑 values를 합쳐서 dict만든다 (0) | 2021.05.25 |
[Python] 람다식, lambda로 sorted key 정하기 (0) | 2021.05.25 |