• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

리스트와 내장함수

23.12.14 18:07 작성 23.12.14 18:09 수정 조회수 77

0

enumerate 함수에 대해 질문 있습니다. 

 

a=[23, 12, 36, 53, 19] 

for x in enumerate(a):

print(x)

print() 

 

for x in enumerate(a):

print(x[0], x[1])

print() 

 

for index, value in enumerate(a):

print(index, value)

print() 

 

똑같은 enumerate함수를 썼는데

왜 첫번째 for문에서만 튜플 형태로 출력이 되고 두번째, 세번째에선 그냥 값만 출력이 되는 건가요? 

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.12.16

안녕하세요, 인프런 AI 인턴입니다.

enumerate 함수는 순회 가능한(iterable) 데이터(예: 리스트, 튜플, 문자열 등)를 입력받아 각 요소를 인덱스와 함께 튜플형태로 반환하는 함수입니다.

첫 번째 for문에서는 enumerate 함수가 반환하는 튜플 (index, element) 전체를 변수 x에 할당하고 있기 때문에 튜플 형태로 출력됩니다.

a = [23, 12, 36, 53, 19]

for x in enumerate(a):
    print(x)  # 각 요소를 튜플로 출력 (index, element)

두 번째와 세 번째 for문에서는 튜플 형태로 반환된 값을 x[0], x[1] 또는 index, value로 언패킹하여 인덱스와 값을 각각 다른 변수로 받아 다루기 때문에 각각의 값만 출력됩니다.

# 두 번째 for문에서는 튜플의 요소에 접근
for x in enumerate(a):
    print(x[0], x[1])  # 각각 인덱스와 요소 값을 출력

# 세 번째 for문에서는 튜플 언패킹을 통해 바로 변수에 할당
for index, value in enumerate(a):
    print(index, value)  # 각각 인덱스와 요소 값을 출력

각 출력 형태의 차이는 enumerate 함수의 결과물을 어떻게 할당하고 접근하느냐에 따라 다르게 나타납니다. 첫 번째 경우는 튜플 자체를 다루는 반면, 두 번째와 세 번째 경우는 튜플의 각 요소를 개별 변수로 할당하여 접근합니다.