얼렁뚱땅
[Python] 내장함수 enumerate() 본문
🔶 enumerate() 함수란
- 순서가 있는 자료형(list, tuple, dictionary, string)을 입력으로 받았을 때, 인덱스와 값을 포함하여 리턴
- for문과 함께 자주 사용됨
- 즉, 인덱스와 그 자체의 값이 동시에 필요할 경우 사용한다!
🔶 형식
fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi']
for i in enumerate(fruits):
print(i)
# 결과
(0, 'orange')
(1, 'apple')
(2, 'pear')
(3, 'banana')
(4, 'kiwi')
expression = "123+12"
for i in enumerate(expression):
print(i)
# 결과
(0, '1')
(1, '2')
(2, '3')
(3, '+')
(4, '1')
(5, '2')
- enumerate() 함수는 기본적으로 인덱스와 원소로 이루어진 튜플(tuple)을 만들어준다.
- 따라서 인덱스와 원소를 각각 다른 변수에 할당하고 싶다면 인자 풀기(unpacking)를 해줘야 한다.
fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi']
for idx, fruit in enumerate(fruits):
print(idx, fruit)
# 결과
0 orange
1 apple
2 pear
3 banana
4 kiwi
🔸시작 인덱스 변경
- 루프를 돌리다 보면 인덱스를 0이 아니라, 1로 시작하고 싶을 때가 있다.
- 사실 enmerate 뒤에 start=0이라는 인자가 숨겨져 있었다.
- 시작점을 바꾸고 싶을 때는 enumerate() 함수를 호출할 때 start 인자에 시작하고 싶은 숫자를 넘기면 된다.
enumerate(순서가 있는 객체, start=100)
# 결과
100 orange
101 apple
102 pear
103 banana
104 kiwi