본문 바로가기

Computer Science/Python

[Python] enumerate를 활용한 for loop

반응형

python3에서 for loop을 사용하는 경우 기존에 range를 활용한 사람들이 많다.

arr = ['a','b','c','d']
for i in range(0,len(arr)):
	print(i, arr[i])

 

0 a
1 b
2 c
3 d

 

그러나 이런 방식을 파이썬 전문가들은 파이썬답지(Pytonic) 않다고 한다.

그렇다면 그들이 말하는 Pytonic한 방법은 무엇인가?

그게 이번에 설명할 enumerate를 활용한 방법이다.

arr = ['a','b','c','d']
for e in enumerate(arr):
	print(e)

 

(0, 'a')
(1, 'b')
(2, 'c')
(3, 'd')

 

이렇게 index와 value를 tuple로 받아 처리 할 수 있다.

2차원 array에서 사용하는 것도 좋다.

 

matrix = [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']]

for i, row in enumerate(matrix):
    for j, value in enumerate(row):
        print(i, j, value)

 

0 0 a
0 1 b
0 2 c
1 0 d
1 1 e
1 2 f
2 0 g
2 1 h
2 2 i

 

 

반응형