인덱스(index)와 원소를 동시에 접근하면서 루프를 돌림
lst = ['AA', 'BB', 'CC']
for entry in enumerate(['A', 'B', 'C']):
print(entry)
for entry in enumerate(lst):
print(entry)
결과
(0, 'A')
(1, 'B')
(2, 'C')
(0, 'AA')
(1, 'BB')
(2, 'CC')
lst = ['AA', 'BB', 'CC']
for i, value in enumerate(['A', 'B', 'C']):
print(i, value)
for i, value in enumerate(lst):
print(i, value)
결과
0 A
1 B
2 C
0 AA
1 BB
2 CC
lst = ['AA', 'BB', 'CC']
for i, value in enumerate(['A', 'B', 'C'], start=101):
print(i, value)
for i, value in enumerate(lst, start=101):
print(i, value)
결과
101 A
102 B
103 C
101 AA
102 BB
103 CC
lst = [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I']]
for r in range(len(lst)):
for c in range(len(lst[r])):
print(r, c, lst[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
lst = [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I']]
for r, row in enumerate(lst):
for c, value in enumerate(row):
print(r, c, 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
lst = ['A', 'B', 'C']
lst2 = [[i, value] for i, value in enumerate(lst)]
print(lst2)
결과
[[0, 'A'], [1, 'B'], [2, 'C']]
lst = ['A', 'B', 'C']
dic = {i:value for i, value in enumerate(lst)}
print(dic)
결과
{0: 'A', 1: 'B', 2: 'C'}
이를 활용한 문제
백준 18870번 - 좌표 압축



import sys
n = int(sys.stdin.readline())
lst = list(map(int, sys.stdin.readline().split()))
sorted_lst = sorted(list(set(lst)))
dic = {x:idx for idx, x in enumerate(sorted_lst)}
for i in lst:
print(dic[i], end=" ")