얼렁뚱땅

[Python] 내장함수 enumerate() 본문

Python Study/Python 정리

[Python] 내장함수 enumerate()

당당익명 2024. 2. 5. 22:24

🔶 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