enumerate() 함수
- enmerate( list ):
- 인덱스와 원소로 이루어진 tuple로 변환해줌
- 인자로 넘어온 목록을 기준으로 인덱스와 원소를 차례대로 접근하게 해주는 반복자(iterator) 객체를 반환해주는 함수
- (index, value)
- 인덱스와 원소를 각각 다른 변수에 할당하고 싶다면 인자 풀기(unpacking)
num=['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
answer=s
for i, letter in enumerate(num):
answer=answer.replace(letter, str(i)) #replace함수는 string으로만 변경 가능: str(i)
- 시작 인덱스 변경
- 루프 인덱스를 0이 아니라, 다른 범위부터 시작하고 싶을 때
- enumerate( list, start=시작하고 싶은 인덱스)
- 📍for idx,r in enumerate(result[::-1])
- 맨 마지막 인덱스부터 불러오더라도 출력되는 인덱스는 0부터
- → 구하려는 인덱스 값: len(result)-1-idx
result=[1,2,3,4,5]
for idx,r in enumerate(result[::-1]):
print(idx,r)
#결과
0 5
1 4
2 3
3 2
4 1
2차원 리스트에 enumerate() 적용
board = [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I']]
- 일반적으로 2차원 리스트의 인덱스 row,col 구할 경우
for r in range(len(board)):
for c in range(len(board[r])):
print(r, c, board[r][c])
#결과
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() 함수로 2차원 리스트 인덱스 row, col 구하는 경우
for r, row in enumerate(board):
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
참고) https://www.daleseo.com/python-enumerate/