Python

GreenBean·2022년 3월 14일
0
post-thumbnail

Python

enumerate 함수란?

  • enumerate는 '열거하다, 나열하다'는 뜻
    • enumerate bits of information이라고 하면 단편적인 정보를 나열한다는 뜻으로 나열해서 번호를 매겨준다는 의미 정도
  • enumerate반복문에서 사용할 수 있는 함수
    • 반복문을 사용할 때 리스트의 순서값, 즉 인덱스의 정보가 필요한 경우가 있는데 enumerate 함수는 리스트의 원소에 순서값을 부여
    • 이 함수를 사용하면 반복문 사용시 인덱스 번호를 얻을 수 있음
      • 예를 들어 리스트를 인덱스 별로 for문을 돌리고 싶을 때 유용

사용 방법

  • 반복문을 사용할 때 리스트의 인덱스가 필요하면 아래와 같이 가능
a = [1, 2, 3]

for i in range(len(a)):
	print(i)
  • enumerate를 이용하면 리스트의 인덱스와 값을 튜플 형태로 반환
    • 딕셔너리 자료형enumerate 함수를 이용해서 for문을 돌리면 인덱스와 키값을 튜플로 반환
for i in enumerate(a):
	print(i)

>>> (0, 1)
>>> (1, 2)
>>> (2, 3)

range 보다는 enumerate 를 사용하는 이유

range를 사용했을 때

  • range 함수는 range(시작 숫자, 종료 숫자, step)의 형태로 사용
  • range의 결과는 시작 숫자 이상 ~ 종료 숫자 미만의 컬렉션을 생성
  • 사용할 때 시작 숫자와 step은 생략 가능
  • rangelen 함수와 같이 사용
    • range는 정수 범위를 지정하여 순회할 수 있지만 list와 같은 자료구조를 순회할때는 len을 통해 그 자료구조의 길이 만큼 순회해야 하므로 아래와 같이 사용해야 함
fruits = ['apple', 'grape', 'banana'] 

for i in range(len(fruits)):
    print(i)
  • 리스트와 같은 자료 구조의 각 원소에 접근하기 위해서는 아래와 같이 직접 인덱스로 접근해야 함
fruits = ['apple', 'grape', 'banana'] 

for i in range(len(fruits)): 
    print(fruits[i])

enumerate를 사용했을 때

  • 반복문 사용 시 몇번째인지 확인이 필요한 경우 사용
  • 인덱스 번호와 컬렉션의 원소를 튜플 형태로 함께 반환해줌
  • range를 사용함으로서 발생하는 이 두 가지 문제를 enumerate를 사용하여 한 번에 해결할 수 있음
fruits = ['apple', 'grape', 'banana'] 

for idx, fruit in enumerate(fruits): 
    print('{}: {}'.format(idx, fruit))

>>> 0: apple
>>> 1: grape
>>> 2: banana
  • enumerate는 시작할 숫자를 지정해줄 수 있음
fruits = ['apple', 'grape', 'banana'] 

for idx, fruit in enumerate(fruits, 1): 
    print('{}: {}'.format(idx, fruit))

>>> 1: apple
>>> 2: grape
>>> 3: banana
profile
🌱 Backend-Dev | hwaya2828@gmail.com

0개의 댓글