[파이썬/python] enumerate() (원소와 인덱스 같이 출력)

enumerate()

순서가 있는 자료형을 입력으로 받아 인덱스값을 포함하는 값으로 반환

기본적으로 튜플로 반환한다.

li = ["a","b","c","d","e"]
for i in enumerate(li):
    print(i)
#(0, 'a')
#(1, 'b')
#(2, 'c')
#(3, 'd')
#(4, 'e')

 

 

 

li = ["a","b","c","d","e"]
for i in range(len(li)):
    print(i,li[i])
# 0 a
# 1 b
# 2 c
# 3 d
# 4 e

이와 같은 코드를

li = ["a","b","c","d","e"]
for x,y in enumerate(li, start=1):
    print(x,y)
# 0 a
# 1 b
# 2 c
# 3 d
# 4 e

enumerate를 이용하여 이렇게 바꿔 쓸 수 있다.

 

 

 

시작 인덱스를 바꾸고 싶다면 start를 이용하면 된다.

li = ["a","b","c","d","e"]
for x,y in enumerate(li, start=1):
    print(x,y)
# 1 a
# 2 b
# 3 c
# 4 d
# 5 e

 

 

 

딕셔너리 활용

li = ["a","b","c","d","e"]
dic = {}
for x,y in enumerate(li):
    dic[y] = x
print(dic)
#{'a': 0, 'b': 1, 'c': 2, 'd': 3, 'e': 4}

 

 

2차원 배열 활용

matrix = [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I']]

for r, row in enumerate(matrix):
    print(r, row)
# 0 ['A', 'B', 'C']
# 1 ['D', 'E', 'F']
# 2 ['G', 'H', 'I']

2차원 배열을 for문을 한 번 돌릴 때 결과

matrix = [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I']]
for r, row in enumerate(matrix):
    for c, letter in enumerate(row):
        print(r, c, letter)
# 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

for문 두 번 이용

(첫 번째 for문의 row를 다시 두 번째 for문에서 enumerate안에 담아 줌.)

 

 

 


 

참고

🔗

🔗

comment