인프런 커뮤니티 질문&답변

hjy648012님의 프로필 이미지
hjy648012

작성한 질문수

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

9. 리스트와 내장함수(2)

리스트와 내장함수

작성

·

108

·

수정됨

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 인턴입니다.

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 함수의 결과물을 어떻게 할당하고 접근하느냐에 따라 다르게 나타납니다. 첫 번째 경우는 튜플 자체를 다루는 반면, 두 번째와 세 번째 경우는 튜플의 각 요소를 개별 변수로 할당하여 접근합니다.

hjy648012님의 프로필 이미지
hjy648012

작성한 질문수

질문하기