본문 바로가기

개발/Python

파이썬 for문 핵꿀팁(enumerate)

반응형
0, a
1, b
2, c

for문을 쓰다보면 귀찮은 상황이 발생한다. 이를테면 리스트의 모든 원소를 다루면서도 그 인덱스 번호까지 알아야 할 때이다. 그동안 이런 상황에서는 아래와 같이 대처해왔다.

myList = [...]
for i in range(len(myList)):
	print(i, myList[i])

위처럼 인덱스와 원소 내용 둘 다 다룰 때에는 range와 len을 통해 인덱스로 접근하고 그 인덱스에 해당하는 것을 가져오면 된다. 하지만 인덱스가 필요없이 원소에만 접근할 때는 훨씬 간단했던 것을 생각하면 이것마저 번거롭게 느껴진다.

 

파이썬에서는 놀랍게도 아래와 같은 인덱스와 원소를 둘 다 관리해주는 기능이 있다.

myList = ['a', 'b', 'c']
for i in enumerate(myList):
	print(i)

 

(0, a)
(1, b)
(2, c)

출력 결과는 위와 같을 것이다.(왼쪽의 숫자는 라인번호가 아니다! 인덱스까지 출력된 것이다.) 반복문을 돌며 인덱스와 원소의 튜플이 나오는 것을 알 수 있다. 하지만 이것을 꺼내쓰는 것마저 번거롭다면 다음과 같이 쓸 수도 있다.

 

myList = ['a', 'b', 'c']
for i, v in enumerate(myList):
	print(i, v)

파이썬은 정말 무서운 언어이다...

반응형