ssung_끄적끄적/Python_끄적

Python_enumerate()

ssungcohol 2023. 10. 10. 17:37

enumerate

  • for 문과 함께 사용하여 인덱스와 결과 값에 동시에 접근하기 위해 사용
  • 순서가 있는 자료형 (list, set, tuple, dictionary, string)에서 사용 가능

사용법

  • 내장함수이기에 enumerate()를 사용
  • for 문의 in 뒷 부분을 enumerate() 로 한 번 감싸주면 됨
for ex in enumerate([1, 2, 3]):
    print(ex)

#====================
(0, 1)
(1, 2)
(2, 3)

시작 인덱스 변경

 

  • 반복문을 사용하다 보면 최초 인덱스를 0이 아닌 1 또는 다른 숫자로 시작해야할 때 사용
  • 이럴 때는 enumerate() 함수 호출 시 start 인자에 시작하고 싶은 숫자를 넘기면 됨
  • enumerate() 함수는 기본적으로 인덱스와 원소로 이루어진 튜플로 결과 표출
  • 따라서, 시작 인덱스를 변경하고자 할 때는 인자 풀기(unpacking)을 해주어야 함
for num, ex in enumerate(['A', 'B', 'C'], start = 1):
    print(num, ex)

#====================
1, A
2, B
3, C
for num, ex in enumerate(['A', 'B', 'C'], start = 101):
    print(num, ex)
    
#====================
101, A
102, B
103, C

2차원 리스트 루프

 

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

일반 코드

for row in range(len(matrix)):
    for column in range(len(matrix[row])):
        print(row, column, matrix[row][column])
        
#====================
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

 

enumerate() 사용 코드

for r, row in enumerate(matrix):
    for column, ex in enumerate(row):
        print(r, column, ex)
        
#====================
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
728x90